2015-05-26 5 views
1

Я не понимаю, почему это не работает, я искал на форумах и читать официальную документацию, очевидно, что я делаю глупую ошибку:Laravel запрос 5 формы на обновлении

public function rules() 
{ 
    $customer = Customer::find($this->customers); 
    return [ 
     'data.name'  => 'required|unique:customers,name,1' 
    ]; 
} 

То есть CustomerUpdateFormRequest, который я создал, я вручную набрал идентификатор клиента, который равен 1 в правиле, также с помощью: 'data.name' => 'required|unique:customers,name,'.$customer->id,

Проблема в том, что она по-прежнему не проходит уникальную проверку, я предоставляю клиенту уже существующую ошибку даже после того, как вручную или динамически введите идентификатор клиента.

Я прочитал это http://laravel.com/docs/5.0/validation и https://laracasts.com/discuss/channels/requests/laravel-5-validation-request-how-to-handle-validation-on-update и «Верю», что мой код верен, почему он не работает?

+0

Могу ли я спросить, почему у вас есть '' data.name'' как ключ, а не только '' name''? – tommy

+0

Да! конечно, im отправляет массив с именем data [], поэтому, если мне нужно что-то получить от него, мне нужно вызвать ключ с точкой, например: «data.name», «data.country» и т. д. –

+0

А ладно, так это '$ data = ['data' => ['name' => ...]]'? – tommy

ответ

1

Код выше работает отлично, никаких синтаксических ошибок или логики, проблема была в базе данных, был другой клиент с теми же введенными данными, которые я предполагал до того, как была создана форма проверки.

Я не знаю, должен ли я удалить этот вопрос или оставить его здесь, в любом случае код его штраф, если у вас есть какие-либо проблемы, такие как мой. ПОЖАЛУЙСТА, ПРОВЕРЬТЕ ВАШУ БД.

Спасибо!

1
public function rules() 
{ 

    $customer= $this->route('customer'); //$this->('route-name') 

    return [ 
     'data.name'  => 'required|unique:customers,name,' . $customer->id 
    ]; 
}