Метод создания модели Laravel возвращает экземпляр модели неполных полей - PullRequest
0 голосов
/ 16 ноября 2018

У меня проблема с получением данных модели после вставки.Ниже приведен пример кода, в котором Модель пользователя уже имеет $fillable, содержащий все необходимые атрибуты (атрибуты id и state в качестве дополнений к нижеприведенным).

$values = ['firstname' => 'Nick', 'lastname' => 'King', 'gender' => 'male' ];
$createdUser = User::create( $values );

Вот код миграции:

    Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('firstname', 60);
        $table->string('lastname', 60);
        $table->string('gender', 6);
        $table->string('state', 20)->default('inactive');
        $table->timestamps();
    });

При отправке обратно $createdUser как JSON я заметил, что атрибут state не существует.Он существует в миграции , имеющей значение по умолчанию , а также в модели $fillable, но отсутствует в атрибуте $hidden.Так что же не так?

Это ошибка для , когда в возвращаемой модели не вставлены поля со значениями по умолчанию , или это просто способ, которым работает Laravel.

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Другой способ задать значения по умолчанию для ваших моделей - добавить свойство $attributes к вашим Model классам:

protected $attributes = ['state' => 'inactive'];

Это должно установить значения по умолчанию для экземпляра Model при создании новой модели без необходимости повторного обращения к базе данных после ее создания для получения значений по умолчанию.

0 голосов
/ 18 ноября 2018

Поле enum должно иметь предопределенные значения:

$ table-> enum ('state', ['active', 'inactive']) -> default ('inactive');

Я бы тоже сохранял пол.

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