2016-12-02 7 views
0

Ich habe Anfrage für die Aktualisierung der Seite. Beim Hinzufügen Anfrage neue Seite ist wie:Laravel 5.3 Update-Anfrage mit eindeutiger Regel mit Ausnahme

'title'=>'required|max:70|unique:pages', 

aber wenn ich Seitentitel bin Aktualisierung muss eindeutig sein, sondern müssen alle anderen Titel mit einer Ausnahme überprüfen, bereits eingetragen. Ich suchte Google nach allen möglichen Lösungen, aber nichts funktioniert.

Ich habe versucht:

'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'), 

Regel innerhalb Regeln Methode

public function rules() 
{ 
    return [ 
    'title'=>'required|max:70|unique:pages, title,'.$this->id, 
    ... 
    ] 

ich diesen Fehler:

SQLSTATE[42S22]: Column not found: 1054 Unknown column ' title' in 'where clause' (SQL: select count(*) as aggregate from `pages` where ` title` = test and `id` <>) 

In meinem mysql Ich habe id (klein geschrieben) Spalte das ist Primärschlüssel und Titelspalte (auch Kleinbuchstaben).

Antwort

4

Sie haben einen Fehler hier:

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

Ja sein sollte, jetzt ist es keine Fehler zeigt, aber ich mag es nicht diese ID nicht ausschließt. Es gibt mir Validierungsfehler. Der Titel wurde bereits vergeben. – KondukterCRO

+0

Das hängt davon ab, was '$ this' ist, Ihr Modell hat eine' rules() 'Methode? Wenn nicht, nimmst du die ID von der falschen Klasse ... Es ist also ein anderes Problem, bitte öffne eine andere Frage mit mehr Informationen. –

+0

antonio, höchstwahrscheinlich eine Formularanfrage – lagbox

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

Es scheint, dass es für eine Spalte mit dem Namen „Titel“ ist die Suche, kann es dumm, aber überprüfen Sie, dass die Spaltennamen ohne Leerzeichen am beggining gesendet wird.