2017-05-03 5 views
0

Ich erstelle eine Anwendung, mit der ein Benutzer Blogposts in mehreren Sprachen erstellen kann. Pro Sprache haben Sie eine Registerkarte, die die verschiedenen Felder enthält. Sie können den Titel, Inhalt und die Slug definieren. Als sie den Blogpost speichern, werden alle params wie folgt durch eine FormRequest Klasse validiert:laravel validieren, wenn die übergebenen Parameter nicht gleich sind

{ 
    "_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>" 
     } 
    } 
} 

Jetzt würde ich die Schnecke einzigartig sein wollen, aber die normale einzigartige Regel nicht funktioniert, da die übergebenen params der Datenbank hinzugefügt Arent noch. Was wäre der beste Weg, die Schnecken zu validieren, also sind alle einzigartig?

+0

warum generieren Sie nicht automatisch Slug basierend auf Posttitel? –

+0

Wäre besser, ihn einmal den 'Slug' wählen zu lassen. Dann erstellst du es einfach für die anderen Sprachen wie 'slug-fr',' slug-de' etc. Auf diese Weise wird es immer einzigartig sein, wenn der erste 'Slug' einzigartig ist. –

+1

Es ist keine gute Idee, den Benutzer zu nerven, indem er gezwungen wird, die Nacktschnecken zu modifizieren, bis alle einzigartig sind. Es ist viel Butter, wenn Ihr Code die nicht eindeutigen Slugs auf dem Server ändert. Zum Beispiel durch Hinzufügen eines Zählers oder eines Sprachsuffixes. – Matey

Antwort

0

Wenn Sie unbedingt müssen sie benutzerdefinierte Slugs für jeden erstellen, können Sie versuchen, die different validation rule verwenden.

$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|...',' 
    ... 
]); 
Verwandte Themen