2017-05-07 8 views
3

フィールド 'name'にCategoryRequest.phpファイルと一意の検証があります。 フォームを使用して作成すると機能しますので、同じ名前のカテゴリを挿入することはできません。更新時にユニークな検証IDを無視する

問題は、それを更新しようとすると、「名前はすでに取得されています。または以下のコードを試してみると、 'Undefined Variable:id'と表示されます。

私はどのように更新することができ、検証時に自分の名前を無視できますか?

<?php 

namespace App\Http\Requests; 

use Illuminate\Foundation\Http\FormRequest; 

class CategoryRequest extends FormRequest 
{ 
    /** 
    * Determine if the user is authorized to make this request. 
    * 
    * @return bool 
    */ 
    public function authorize() 
    { 
     return true; 
    } 

    /** 
    * Get the validation rules that apply to the request. 
    * 
    * @return array 
    */ 
    public function rules() 
    { 
     return [ 
      'name' => 'required|unique:categories,name,'.$id.',id' 
     ]; 
    } 
} 

答えて

1

変更この:

return [ 
    'name' => 'required|unique:categories,name,'.$id.',id' 
]; 

これまで:

return [ 
    'name' => 'required|' . Rule::unique('categories')->ignore('category') 
]; 

またはこの:

return [ 
    'name' => ['required', Rule::unique('categories')->ignore('category')] 
]; 
ここに私のコードです
関連する問題