2016-08-22 11 views
1

私は、title,bodyおよびphoto[]という3つのフィールドを持つフォームを持っています。私はそれを検証して少なくとも1つのアイテムが埋め込まれるようにしようとしていますが、動作させることはできません。ファイルをアップロードすると、私はまだtitlebodyのエラーが表示されます。Laravel 5.2ファイル配列の検証

public function rules() 
{ 
    return [ 
     'title' => 'required_without_all:body,photo.*', 
     'body' => 'required_without_all:title,photo.*', 
     'photo.*' => 'required_without_all:title,body', 
     'photo.*' => 'mimes:jpeg,gif,png', 
    ]; 
} 

更新:ジョナサンは、私は私のルールが間違っていたことを指摘しました。私はそれらを修正し、今これを使用しています。まだ動作していません。写真をアップロードしようとすると、他のフィールドが必要であるというエラーメッセージが表示されます。

public function rules() 
{ 
    return [ 
     'title' => 'required_without:body,photo.*', 
     'body' => 'required_without:title,photo.*', 
     'photo.*' => 'required_without:title,body|mimes:jpeg,gif,png', 
    ]; 
} 
+0

なぜ同じフィールドに2つのルールがありますか?私は完全にはっきりしていないが、私の答えの最初の草稿でいくつか前提をしているので、あなたが何をしようとしているのかを詳しく述べてください。 – Jonathan

答えて

0

あなたがphoto場を確保するために探している場合は、あなたが'photo' => 'array'を必要として、あなたは、アレイの子の他の検証のための'photo.*' => ''を使用することができる配列です。

ルールはパイプ文字「|」で区切られていますので、例では2つを組み合わせる場合は'photo.*' => 'required_without_all:title,body|mimes:jpeg,gif,png',となります。私はあなたがそれを認識していることを確認することはできませんので、ルールを分離するためにパイプを使用して表示されません。

これは、最初に間違っていた(連想配列内の2つのキーが同一である)場合と、ルールの1つを無効にするような優先順位がある場合があります。

あなたは(私はあなたが、これは与えられたすべてのフィールド場合欠けている必要とされることが必要性を規定しているようrequired_without_allを使用して開始するには正しい軌道に乗っていたと思うの記録のために)このような何かを試みることができる:

public function rules() 
{ 
    return [ 
     'title' => 'required_without_all:body,photo', 
     'body' => 'required_without_all:title,photo', 
     'photo' => 'array', 
     'photo.*' => 'required_without_all:title,body|mimes:jpeg,gif,png', 
    ]; 
} 

Reference

+0

はい、ありがとうございます。私は目立たずにメッセージを設定する方法(メッセージごとに1行ずつ)のようなルールを設定していました。私はルールを修正し、それらをパイプで分けた。それは助けになりませんでした。 '' photo '=>' array''の意味がわからないのですか? – timgavin

+0

明確にする:ユーザーが少なくとも1つのフィールドに入力してもらいたい。だから彼らは写真をアップロードしたり、タイトルを追加したり、本文にテキストを追加したりする必要があります。彼らは空のフォームを提出することはできません。 – timgavin

+0

'' photo '=>' array''は '' photo''値が配列であるかどうかをチェックするだけです。あなたはn個の写真を送信しているので、各写真は一番上の配列にカプセル化されています。最初の検証は、配列を受け取っていることを確認することです。 – Jonathan

関連する問題