【发布时间】:2020-05-26 02:48:59
【问题描述】:
我在 Laravel 中使用观察者为属性添加默认值。
public function creating($model)
{
if (!$model->company_id) $model->company_id = (Auth::check()) ? Auth::user()->company_id : null;
}
这适用于每个控制器。但是如果我在app\Console\Commands\ 中创建一个自定义命令。我收到一个错误:
照亮\数据库\查询异常 SQLSTATE[HY000]:一般错误:1364 字段 'company_id' 没有默认值
如何让 Observers 从命令行工作?
【问题讨论】:
-
Auth在命令行中不存在,它是 http 中间件,因此您的company_id将始终为空。错误是从您的数据库发出的,因为它是空的并且没有默认值(并且可能不可为空)。 -
谢谢@DarrylE.Clarke!如果您将此作为答案发布,我会接受。
标签: laravel laravel-5 laravel-artisan