I'm using voyager admin panel. I want to check the attributes that are changed when I submit the form. I'm using isDirty() & getDirty() but that is not working. It is showing that the error
Method Illuminate\Http\Request::isDirty does not exist.
Sometimes showing this error.
Call to a member function isDirty() on string
update Controller
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',
]);
}
Request will not show the results it will work only with the model. So I used $data instead of $request. And I've to show it in an array. Something like this.
$data = $query->findOrFail($id);
$data->status = $request->status;
dd($data->isDirty('status'));
I works on my side.