【发布时间】:2019-12-23 00:01:34
【问题描述】:
我有一个奇怪的情况,即 eloquent 模型不允许我更新或销毁,而索引和创建工作正常!
我正在使用 Vue.js 和 Laravel API Resource 进行表单控制,虽然它以前对我有用,但在这里不起作用:
这是我的 Vue.js 代码:
updateFinish(finish) {
axios.patch(`/api/finishes/${finish.id}`, finish).then(response => {
this.fetchFinishes();
}).catch(error => {
// Get laravel validation error
this.errors = error.response.data.errors;
});
},
laravel 更新代码(不工作)
public function update(FinishType $finishType)
{
// Don't know why not working
$finishType->update($this->validateRequest());
return new FinishTypeResource($finishType);
}
回复是null:
{"id":null,"name":null}
虽然此代码有效:
public function update($id)
{
$finishType = FinishType::find($id);
$validates = $this->validateRequest();
$finishType->name = $validates['name'];
$finishType->save();
return new FinishTypeResource($finishType);
}
public function validateRequest()
{
return request()->validate([
'name' => 'required | unique:finish_types',
]);
}
注意模型名称是FinishType,数据库表名称是finish_types,我什至尝试像protected $table = 'finish_types'那样在模型中定义表名称——仍然无法正常工作,我已经定义了$fillable数组!!!
【问题讨论】:
-
请出示
validateRequest()函数的代码,我在laravel源码中没有找到。 -
是的,抱歉,我确实编辑了帖子以包含
validateRequest()函数...问题是我对其他模型有相同的确切代码并且它正在工作查找!
标签: laravel vue.js eloquent model