この種の問題のベストプラクティスが欲しい
I haveitems
と多対多関係のcategories
テーブルcategory_item
これらの検証ルールを持つ2つのモデルがあります
class Category extends Basemodel {
public static $rules = array(
'name' => 'required|min:2|max:255'
);
....
class Item extends BaseModel {
public static $rules = array(
'title' => 'required|min:5|max:255',
'content' => 'required'
);
....
class Basemodel extends Eloquent{
public static function validate($data){
return Validator::make($data, static::$rules);
}
}
カテゴリ、タイトル、およびコンテンツ フィールドを含む 1 つのフォームのみから、これら 2 セットのルールを検証する方法がわかりません。
現時点では、アイテムの検証を行っているだけですが、どうすればよいかわかりません。
- コントローラーに新しいルールのセットを作成します->しかし、冗長に見えます
- 順番にアイテムを検証してからカテゴリを検証します->しかし、検証エラーを処理する方法がわかりません。それらをマージする必要がありますか? そしてどうやって?
- 私が知らない3番目の解決策
ここに私の ItemsController@store メソッドがあります
/**
* Store a newly created item in storage.
*
* @return Redirect
*/
public function store()
{
$validation= Item::validate(Input::all());
if($validation->passes()){
$new_recipe = new Item();
$new_recipe->title = Input::get('title');
$new_recipe->content = Input::get('content');
$new_recipe->creator_id = Auth::user()->id;
$new_recipe->save();
return Redirect::route('home')
->with('message','your item has been added');
}
else{
return Redirect::route('items.create')->withErrors($validation)->withInput();
}
}
私はこの主題に関するいくつかの手がかりに非常に興味があります
ありがとう