2017-05-03 16 views
0

私は、ユーザーが多言語でブログポストを作成できるようにするアプリケーションを作成しています。言語ごとに、さまざまなフィールドを含むタブがあります。彼らはタイトル、内容、スラッグを定義することができます。彼らはブログ投稿を保存すると、すべてのparamsは、次のようFormRequestクラスによって検証されていますlaravel渡されたパラメータが等しいかどうかを確認する

{ 
    "_method":"PUT", 
    "_token":"eEDkVUU0cEcfAe3EQCiUIEdvCjTBqLFPT8CwW22D", 
    "translations":{ 
     "nl":{ 
     "title":"A animi non est id repellat.nl", 
     "slug":"veritatis-quos-iusto-eumnl", 
     "content":"<p>ad-voluptate-sed-istenl<\/p>" 
     }, 
     "en":{ 
     "title":"Velit dignissimos suscipit unde et quod.en", 
     "slug":"cupiditate-in-quaerat-uten", 
     "content":"<p>rem-corporis-aut-aten<\/p>" 
     }, 
     "fr":{ 
     "title":"Mollitia reiciendis hic accusamus id dignissimos.fr", 
     "slug":"voluptatem-iusto-quasi-rationefr", 
     "content":"<p>accusantium-tempore-eos-nisifr<\/p>" 
     }, 
     "de":{ 
     "title":"Esse quasi ut delectus molestiae rem.de", 
     "slug":"voluptates-excepturi-labore-mollitiade", 
     "content":"<p>earum-delectus-velit-distinctiode<\/p>" 
     } 
    } 
} 

渡されたのparamsは、アレントので、今私は、ユニークなが、通常のユニークなルールのdoesntの仕事であることをスラグをご希望のデータベースに追加まだ。スラグを検証する最善の方法は何でしょうか?すべてがユニークですか?

+0

投稿タイトルに基づいてスラッグを自動生成しないのはなぜですか? –

+0

彼は一度「スラグ」を選ぶのが良いでしょう。次に、 'slug-fr'、' slug-de'などのような他の言語用にも作成します。最初の「スラッグ」がユニークであれば、それは常にユニークになるでしょう –

+1

すべてのスラグが一意になるまでスラグを変更するよう強制してユーザーを嫌うのは良い考えではありません。あなたのコードがサーバ上のユニークでないスラッグを変更するならば、それは非常にバターです。たとえば、カウンタや言語の接尾辞を追加します。 – Matey

答えて

0

それぞれにカスタムスラッグを作成させる必要がある場合は、different validation ruleを試してみてください。

$this->validate($request, [ 
    'slug_field_1' => 'different:slug_field_2|different:slug_field_3|...', 
    'slug_field_2' => 'different:slug_field_1|different:slug_field_3|...',' 
    ... 
]); 
関連する問題