大家好,我创建了一个" promos"表,现在,我正在研究这个模块的CRUD功能。 "创建"功能完成,我没有遇到任何问题。我唯一的问题就是当我更新我的模型时,这很奇怪。
似乎$ this-> model-> where(' id',$ id) - > first()无法查看和检索列列表。这是截图。
我已经尝试过composer dump-autoload和php artisan clear-compiled,希望问题能解决。
有关其他参考,请参阅我的架构,模型和代码:
其他说明:$ this->模型指向Promo模型
编辑:
我没有特别按@OmarTarek所述的更新方法显示控制器。我们公司正在使用RepositoryInterface Pattern。在将数据保存到数据库时,我们的工作流程就像 View => Controller => Repository => Model 而不是正常的 View => Controller =>模型强>
在我的控制器中,我的代码是
在我的存储库中,我的代码是这样的:
如您所见,我继承了BaseRepository.php,因为它具有创建,更新和删除所需的所有功能/方法。
我突出显示了出错的代码。
编辑II:
我已经实施了@PaladiN建议的更改。错误仍然显示,更新方法仍然无法正常工作。
答案 0 :(得分:1)
您可以删除first()
,因为ID是主键。您还要在updateData()
方法上再次调用更新语句,您应该将其删除。
$this->model->where($key, $value)->update($data);
此外,当您定义$ fillable或$ guarded时,不是两者都定义。使用空数组定义$ guarded时,默认情况下所有字段都可填充。另一件事是在继续之前检查使用make()在构造函数中创建的模型是否是有效的模型实例。
答案 1 :(得分:0)