0

我有更新页面的请求。添加新页面时的请求是这样的:

'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(小写)列和标题列(也是小写)。

4

2 回答 2

5

你这里有一个错误:

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,
    ...
    ]
于 2016-12-03T00:11:40.940 回答
1
SQLSTATE[42S22]: Column not found: 1054 Unknown column ' title'

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

于 2016-12-03T00:06:40.067 回答