更新 `best_answer_id` SQL 不报错

public function it_knows_if_it_is_the_best()
    {
        // create  Answer
        $answer = create(Answer::class);            

        $this->assertFalse($answer->isBest());

        $answer->question->update(['best_answer_id' => $answer->id]);

        $this->assertTrue($answer->isBest());
    }

这里一直返回的是

There was 1 failure:

1) Tests\Unit\AnswerTest::it_knows_if_it_is_the_best
Failed asserting that false is true.

/var/www/laravel/larazhihu/tests/Unit/AnswerTest.php:27

并不会报 SQL 错误,无论 column 存在与否, $answer->question->update(['best_answer_id' => $answer->id]); 一直返回 true.
查了一下,似乎是因为使用了 $guarded=['id'] 导致在不存在的 column 并不会报错,而是不执行语句。反之使用 $fillable=['best_answer_id'] 会导致 SQL 错误。
请问下 按教程里的代码走 如何让 update 报 SQL 错误?

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 1
洛未必达

贴一下 Laravel 的版本,与教程的一致吗?

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!