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

Php Laravel 5.3具有唯一规则的更新请求,但有例外,php,laravel,laravel-5.3,laravel-request,Php,Laravel,Laravel 5.3,Laravel Request,我有更新页面的请求。添加新页面时,请求如下所示: 'title'=>'required|max:70|unique:pages', 但当我更新页面标题必须是唯一的,但需要检查所有其他标题,除了一个已经输入。 我在谷歌上搜索了所有可能的解决方案,但没有任何效果 我试过: 'title'=>"required|max:70|unique:pages, title,{$this->id}", 'title'=>'required|max:70|unique:pages, ti

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

'title'=>'required|max:70|unique:pages',
但当我更新页面标题必须是唯一的,但需要检查所有其他标题,除了一个已经输入。 我在谷歌上搜索了所有可能的解决方案,但没有任何效果

我试过:

'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` <> )
SQLSTATE[42S22]:未找到列:在“where子句”中找到1054个未知列“title”(SQL:选择count(*)作为“pages”中的聚合,其中“title”=test和“id”)
在mysql中,id(小写)列是主键,title列也是小写的

似乎它正在搜索一个名为“title”的列,这可能很愚蠢,但请仔细检查该列的名称是否发送时没有空格

它似乎正在搜索一个名为“title”的列,这可能很愚蠢,但请仔细检查该列的名称是否发送时没有空格。

您这里有一个错误:

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,
    ...
    ]
这里有一个bug:

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

是的,现在它没有显示任何错误,但好像它没有排除这个id。它给了我验证错误。标题已被采用。这取决于什么是
$this
,您的模型是否有
规则()
方法?如果不是,你是从错误的类中获取id。。。所以这是一个不同的问题,请用更多的信息打开一个不同的问题。antonio,很可能是一个表单请求您应该
dd($this->id)
查看这是否是相同的标题,现在它没有显示任何错误,但好像它没有排除这个id。它给了我验证错误。标题已被采用。这取决于什么是
$this
,您的模型是否有
规则()
方法?如果不是,你是从错误的类中获取id。。。因此,这是一个不同的问题,请打开一个包含更多信息的不同问题。antonio,很可能是一个表单请求您应该
dd($this->id)
查看这是否是相同的标题id