【发布时间】:2022-01-06 14:00:55
【问题描述】:
我正在使用 voyager 管理面板。我想检查提交表单时更改的属性。我正在使用 isDirty() 和 getDirty() 但这不起作用。 显示错误
方法 Illuminate\Http\Request::isDirty 不存在。
有时会显示此错误。
在字符串上调用成员函数 isDirty()
更新控制器
public function update(Request $request, $id)
{
$slug = $this->getSlug($request);
$dataType = Voyager::model('DataType')->where('slug', '=', $slug)->first();
// Compatibility with Model binding.
$id = $id instanceof \Illuminate\Database\Eloquent\Model
? $id->{$id->getKeyName()}
: $id;
$model = app($dataType->model_name);
$query = $model->query();
$data = $query->findOrFail($id);
$this->insertUpdateData($request, $slug, $dataType->editRows, $data);
// That part is showing an error
dd($request->isDirty(['status']));
return $redirect->with([
'message' => __('voyager::generic.successfully_updated')." {$dataType->getTranslatedAttribute('display_name_singular')}",
'alert-type' => 'success',
]);
}
【问题讨论】:
-
模型脏了,也就是变了。请求不是。
-
属性改变应该用什么?
-
您必须在更改了属性的模型实例上调用该方法
-
$data->isDirty('status')应该在之前保存数据。 -
谁能写下代码让我容易理解。
标签: php laravel model controller voyager