Laravel 5.3 具有唯一规则的更新请求,但有例外

Laravel 5.3 update request with unique rule with exception

我有更新页面的请求。添加新页面时请求如下:

'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(小写)列是主键和 title 列(也是小写)。

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

它似乎在搜索名为“title”的列,这可能很愚蠢,但请仔细检查发送的列名是否在开头没有 space。

你这里有一个错误:

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