2016-03-19 2 views
0

У меня возникает проблема при использовании уникального правила laravel в CreateRequest с JsValidation. Вот код запроса.Ошибка laravel jsValidation при использовании уникального правила

class CreateProductRequest extends Request 
{ 

    public function rules() 
    { 
     return [ 

      'factory_id' => 'required', 
      'category' => 'required', 
      'product_code' => 'required|unique:product', 
      'un_code' => 'required|unique:product', 
      'hs_code' => 'required|unique:product', 
      'section' => 'required', 
      'status' => 'required', 
      'product_type' => 'required', 
      'classification' => 'required', 
      'main_product_market' => 'required', 
      'custodian_user_id' => 'required' 

     ]; 
    } 
} 

Когда я удаляю уникальное поле, это прекрасно. Но с уникальными правилами я получаю ошибку 500 сервера следующим enter image description here

В консоли он сообщает

enter image description here

Стоит отметить, что, если я не использую JSValidation Laravel не будет производить никаких ошибок

Update:

В Debug Bar я получаю эту ошибку

'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '' for key 'name'' in /.../demo/vendor/laravel/framework/src/Illuminate/Database/Connection.php:408:

+0

На ваш сервер отвечает ошибка 500, что означает, что вам нужно искать в журналах ошибок apache/nginx для ответа. – jszobody

+0

@jszobody, но это не будет, если я просто удалю неповторимый из правил – dmSherazi

ответ

0

вопрос позже была решена. Моя проблема заключалась в том, что я не был typeHinting CreateProductRequest и вместо этого использовал Request.

Мне следовало бы ввести тип расширенного запроса, который объявляет правила.

1

Вы пытаетесь использовать один и тот же уникальное поле для каждого элемента:

'product_code' => 'required|unique:product', 
'un_code' => 'required|unique:product', 
'hs_code' => 'required|unique:product', 

Я предполагаю product ваш стол, а не в поле.

Я думаю, что это то, что вы можете быть после того, как:

'product_code' => 'required|unique:product,product_code', 
'un_code' => 'required|unique:product,un_code', 
'hs_code' => 'required|unique:product,hs_code', 

Это потребовало бы каждый из этих полей должно быть уникальным.

https://laravel.com/docs/5.2/validation#rule-unique

+0

все еще имея тот же isssue – dmSherazi

+0

что-то интересное ... Если я не использую JS Validation, он будет работать нормально. – dmSherazi

+0

Я изменил ответ, чтобы сделать уникальным: table, field - при условии, что продукт - это таблица, дайте этому go (проверили js validations docs и перечислили его таким образом. 'Email '=>' unique: users, email_address' –