2017-10-27 13 views
1

私は自分の投稿のカテゴリを作成したい、そして他のカテゴリがタグテーブルにあるようなフォームを持っています。私はこれを行うことができますどのように戻って返す新しいカテゴリを作成するために私のフォームは、このコードを持っています?カテゴリを追加するlaravelに以前に存在していた場合、データベースに保存しないでください。5.4

<form method="post" class="form-horizontal" action="/tag"> 
     {{csrf_field()}} 
    <div class="form-group"> 
     <label class="control-label col-sm-4" >New Category:</label> 
     <div class="col-sm-5"> 
      <input type="text" class="form-control" name="name"> 
     </div> 
    </div> 

    <div class="form-group"> 
     <div class="col-sm-offset-2 col-sm-12"> 
      <button type="submit" class="btn btn-primary">Submit</button> 
     </div> 
    </div> 
</form> 

そして、私のコントローラは、このコードを持っています

public function store(request $request) 
{ 
    $this->validate($request,array('name'=>'required')); 
    $tag=new Tag; 
    $tag->name=$request->name; 
    $tag->save(); 
    return redirect('/tag'); 
} 
+0

おかげで私の質問をチェックしてください – hanie

+0

は、あなたが「配列(」名前 '=>を入れてみました持っています'required | unique') – LorenzoBerti

+0

検証にこのコードを追加しますか? – hanie

答えて

0

は、あなたがこのルールを確認しようとしたことがありますか?ドキュメントの例では https://laravel.com/docs/5.4/validation#rule-unique

:あなたのシナリオでは

$v = Validator::make($data, [ 
    'email' => 'unique:users,email_address' 
]); 

は次のようになります。

$valid = Validator::make($data, [ 
    'name' => 'unique:table' 
]); 

$valid->fails()との誤差があるかどうかをチェックすることができますし、$valid->errors()->all()

で印刷することができれば

したがって、$ this-> validate()関数でvcalidationを実行した後に、エラー

$validation = $this->validate($request,array('name'=>'required|unique:table_name')); 
if($validation->valid){ 
... 
}else{ 
//what you want like: 
     redirect('route')->withErrors(["errors"=>$validation->errors]) 
} 

そして、あなたの機能の検証は次のようにsomethiongすることができます:あなたのような何かを行うことができますORS!

private function validate($data , $rules){ 
    $valid = Validator::make($data, $rules); 
    $result = new /StdClass(); 
    $result->valid = !$valid->fails(); 
    $result->errors = $valid->errors()->all() 
    return $result 
} 
+0

どのように私は見ることができます存在のエラー? – hanie

+0

値が存在する場合、ユニークな検証の戻りエラーが貼り付けられたドキュメントへのリンクを参照してください。印刷エラーが必要な場合は、検証中のすべてのエラーに対して$ valid-> errors() - > all()を出力できます。 – LorenzoBerti

+0

ありがとうございます!私のコードに '$ valid = validatore :: make'をどのように追加するのか教えてください。 – hanie

関連する問題