атрибут со значением по умолчанию, возвращающим ноль в модели - PullRequest
0 голосов
/ 11 ноября 2018

Случай 1: Я создал модель и миграцию для хранения отзывов пользователей о жилье.

Модель

protected $fillable = [
    'user_id',
    'lodging_id',
    'body',
    'status',
];

Миграция:

public function up()
{
    Schema::create('reviews', function (Blueprint $table) {
        $table->increments('id');
        $table->unsignedInteger('user_id');
        $table->unsignedInteger('lodging_id');
        $table->text('body');
        $table->enum('status', ['pending', 'approved', 'rejected'])->default('pending');
        $table->timestamps();
        $table->softDeletes();

        $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
        $table->foreign('lodging_id')->references('id')->on('lodgings')->onDelete('cascade');
    });
}

После успешного сохранения данных в базе данных все атрибуты заполнены, как и ожидалось. но когда я пытаюсь вызвать данные, все атрибуты возвращают нужные данные, кроме статуса. Когда я пытаюсь отладить полученные данные с помощью dd (), вот результат ( состояние атрибута недоступно в атрибутах и ​​оригинале ) результат отладки .

Случай 2 : После этого я попытался изменить свою миграцию. Я изменил атрибут статуса с enum со значением по умолчанию в ожидании на строку со значением по умолчанию в ожидании, атрибут статуса все еще возвращается rning null Миграция:

public function up()
{
    Schema::create('reviews', function (Blueprint $table) {
        $table->increments('id');
        $table->unsignedInteger('user_id');
        $table->unsignedInteger('lodging_id');
        $table->text('body');
        $table->string('status')->default('pending');
        $table->timestamps();
        $table->softDeletes();

        $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
        $table->foreign('lodging_id')->references('id')->on('lodgings')->onDelete('cascade');
    });
}

Случай 3 : я изменил атрибут состояния со строки со значением по умолчанию в ожидании на строку со своим значением по умолчанию, затем возвращенные данные соответствуют ожидаемым (все атрибуты возвращаются, это значение из базы данных) . отладочный результат, возвращающий полный атрибут Миграция:

public function up()
{
    Schema::create('reviews', function (Blueprint $table) {
        $table->increments('id');
        $table->unsignedInteger('user_id');
        $table->unsignedInteger('lodging_id');
        $table->text('body');
        $table->string('status');
        $table->timestamps();
        $table->softDeletes();

        $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
        $table->foreign('lodging_id')->references('id')->on('lodgings')->onDelete('cascade');
    });
}

Вопрос: Это ошибка от Laravel или я что-то пропустил? у меня версия базы данных 5.7 и версия laravel 5.7

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