У меня есть запрос на обновление страницы. При добавлении новой страницы запрос выглядит так:
'title'=>'required|max:70|unique:pages',
но при обновлении заголовок страницы должен быть уникальным, но нужно проверить все остальные заголовки, кроме одного уже введенного.
Я искал в Google все возможные решения, но ничего не работает.
Я старался:
'title'=>"required|max:70|unique:pages, title,{$this->id}",
'title'=>'required|max:70|unique:pages, title,'.$this->id,
'title'=>'required|max:70|unique:pages, title,'.$this->input('id'),
правило внутри метода правил
public function rules()
{
return [
'title'=>'required|max:70|unique:pages, title,'.$this->id,
...
]
Я получаю эту ошибку:
SQLSTATE[42S22]: Column not found: 1054 Unknown column ' title' in 'where clause' (SQL: select count(*) as aggregate from `pages` where ` title` = test and `id` <> )
В моем mysql у меня есть столбец id (нижний регистр), который является первичным ключом и столбец заголовка (также строчные буквы).
У вас есть ошибка здесь:
public function rules()
{ This space is causing trouble
|
return [
'title'=>'required|max:70|unique:pages, title,'.$this->id,
...
]
Должно быть
public function rules()
{ Space removed
|
return [
'title'=>'required|max:70|unique:pages,title,'.$this->id,
...
]
SQLSTATE[42S22]: Column not found: 1054 Unknown column ' title'
Кажется, что он ищет столбец с именем «title», это может быть глупо, но дважды проверьте, что имя столбца отправляется без пробела в начале.