Почему в фабрике Laravel есть поле id по умолчанию? - PullRequest
0 голосов
/ 07 июля 2019

У меня есть фабрика вопросов, созданная для моей модели вопросов. У меня нет поля id в модели вопроса, но я не понимаю, где его создает фабрика.

Завод

/* @var $factory \Illuminate\Database\Eloquent\Factory */

use App\Question;use Faker\Generator as Faker;

$factory->define(Question::class, function (Faker $faker) {
    return [
        'qid' => $faker->name,
        'question' => $faker->sentence
    ];
});

Выход фабрики в Тинкер.

Psy Shell v0.9.9 (PHP 7.2.19 — cli) by Justin Hileman
>>> factory('App\Question')->create();
=> App\Question {#3001
     qid: "Bell Schamberger",
     question: "Consequatur debitis est nemo.",
     updated_at: "2019-07-07 15:08:27",
     created_at: "2019-07-07 15:08:27",
     id: 0,
   }

1 Ответ

1 голос
/ 07 июля 2019

Eloquent предполагает, что каждая таблица имеет первичный ключ с именем 'id'

, который можно переопределить (например, в вашей модели) следующим образом:

protected $primaryKey = 'youre_pk_field';
...