Запрос на обновление Laravel 5.3 с уникальным правилом за исключением

У меня есть запрос на обновление страницы. При добавлении новой страницы запрос выглядит так:

'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 (нижний регистр), который является первичным ключом и столбец заголовка (также строчные буквы).

0

Решение

У вас есть ошибка здесь:

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,
...
]
5

Другие решения

SQLSTATE[42S22]: Column not found: 1054 Unknown column ' title'

Кажется, что он ищет столбец с именем «title», это может быть глупо, но дважды проверьте, что имя столбца отправляется без пробела в начале.

1

По вопросам рекламы [email protected]