【发布时间】:2020-06-11 14:14:31
【问题描述】:
我有一个奇怪的问题导致我在 Laravel 中的单元测试失败。我有一个这样创建的表:
Schema::create('message_threads', function (Blueprint $table) {
$table->string('id')->primary();
$table->timestamps();
$table->softDeletes();
$table->string('user_id');
$table->string('folder_id')->nullable();
$table->boolean('starred')->default(false);
$table->string('thread_id')->nullable();
$table->foreign('user_id')->references('id')->on('users');
$table->foreign('folder_id')->references('id')->on('message_folders')->onDelete('cascade');
});
在其关联模型中,当我调用 getAttributes() 函数时,字段 starred 和 folder_id 不存在。
//The code
$messageThread = factory(MessageThread::class)->create();
print_r($messageThread->getAttributes());
输出以下内容:
(
[user_id] => USR-258995103d8c4d37bd6ec3a38dfe9312
[id] => MTD-cb4f8f66ddfc4385b31155212cb57f91
[updated_at] => 2020-02-27 14:15:55
[created_at] => 2020-02-27 14:15:55
)
为什么缺少这些字段,尤其是默认值为 false 的 starred 字段?
【问题讨论】: