Пока у меня есть следующее правило:
$rules['name'] = [
'required',
'string',
'min:3',
'max:255',
Rule::unique('user_templates', 'name')->ignore($this->id),
];
Пользователи могут создавать записи, но все его записи должны иметь уникальное имя (другие пользователи могут иметь записи с таким же именем). Как я могу это сделать? Кроме того, $this->id
при обновлении всегда равно нулю. Что я делаю неправильно?
Контроллер
public function update(UserTemplatesRequest $request, $slug)
{
try {
$model = UserTemplates::where('slug', XSS::clean($slug))
->firstOrFail();
} catch (ModelNotFoundException $err) {
return redirect()->action('UserTemplatesController@index');
}
$data = $request->validated();
if ($model->updateTemplate(XSS::clean($data, ['file']), $request)) {
$message = "There was an error, please try again";
$action = 'index';
$id = '';
} else {
$message = "Category Updated";
$action = 'edit';
$id = $model->id;
}
return redirect()->action("CategoriesController@{$action}", [$id])
->with('message', $message);
}