2017-01-11 3 views
1

私のウェブサイトでは、ユーザーが画像をアップロードできるようにしました。これらの画像に加えて、ユーザーは画像にタグを追加することもできます。Laravelで複数のユーザー生成タグを検証する

フィドルのデモは、こちらをご覧ください: https://jsfiddle.net/cn9nqfj3/4/

私はしかし、この2つの問題を抱えています。

まず、リクエストの残りの部分と同じように、私はこれをどのように通過させることができますか?

例えば、私のコントローラの検証では、私が持っている:

$this->validate($request, [ 
    'title' => 'required|max:40|min:2|string', 
    'mature' => 'required', 
    'categorie' => 'required', 
    'description' => 'string|max:2000', 
    'fileUpload' => 'required|image', 
    'tag' => 'max:20|alpha_num', 
]); 

が、どのタグが働くだろうか?

のタグを追加する場合はそのようなマークアップが生成されます。

<span class="tag"><span class="close">×</span>#tag1</span> 
<span class="tag"><span class="close">×</span>#tag2</span> 

ので、私はそれが通常のフォーム要素ではないと私も検証に至るまで、これを通過するかどうかはわかりません。

第2の問題は、検証が複数のタグを処理する方法でもあります。

タグ量の上限を超えていないかどうかを確認するためにforeach構文のようなものが必要でしょうか?そして、英数字やその他のもののために1つずつ検証しますか?

答えて

1

か、このlaracastシリーズエピソードで説明されてSELECT2プラグインを使用することができるだろう参照、配列を検証することができLaravelで

... https://laracasts.com/series/laravel-5-fundamentals/episodes/24

+0

これは私の質問に直接答えるものではありませんが、私はあなたの答えを調べることになったので、私はあなたのことを受け入れるでしょう。ありがとう。 –

2

入力を入力配列として入力する必要があります。

IE <input type="text" name="tag[]">

これを取得するには、あなたはjavascriptのタグプラグインから情報を取得する方法を見てする必要があります。ほとんどのタグプラグインにはこのためのメソッドがあり、入力フィールドを生成します。あなたはhttps://laravel.com/docs/5.3/validation#validating-arrays

あなたの最後の行は'tag.*' => 'max:20|alpha_num',

+0

感謝! select2プラグインに切り替えても、あなたの答えはかなり助けになりました。 –

関連する問題