поле строки красноречивого laravel для первичного ключа идет ошибка данных - PullRequest
0 голосов
/ 29 октября 2019

Я думаю, это слишком просто, но идет ошибка результата запроса.

Я сделал Страна таблицы, модели. Я просто хочу только запрос.

Единственный необычный момент - я не использовал поле 'id' для основного поля.

Я использовал поле 'cc' для основного.

Вот и все. но идет ответная ошибка данных.

в файле миграции

Schema::create('countries', function (Blueprint $table) {
  $table->string('cc')->index()->unique();
  $table->string('name_eng');
  $table->primary('cc');
});

в контроллере

function run() {
  $countries = Country::OrderBy('cc', 'asc')->take(3)->get();
  $data['countries'] = $countries;
  return response()->json( $data, 200);
}

в модели страны

class Country extends Model
{
    protected $table='countries';
    protected $primaryKey = 'cc';
    public $timestamps = false;
  protected $fillable = ['cc', 'name_eng'];
} 

в результате

{
  "countries": [
    {
      "cc": 0, --> it should be 'ad' 
      "name_eng": "Andorra",
    },
    {
      "cc": 0, --> it should be 'ae' 
      "name_eng": "United Arab Emirates",
    },
    {
      "cc": 0, --> it should be 'af' 
      "name_eng": "Afghanistan",
    }
  ]
}

в резервной копии sql

INSERT INTO `countries` (`cc`, `name_eng`)
VALUES
    ('ad', 'Andorra'),
    ('ae', 'United Arab Emirates'),
    ('af', 'Afghanistan');

Почему я теряю значения полей 'cc'?

Я не понимаю, откуда исходит ошибка.

кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 29 октября 2019

В вашей модели напишите public $incrementing = false

Таким образом, модель поймет, что ваш первичный ключ - строка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...