Ik ben dus al een tijd bezig met een Laravel website waarvan elk bericht 3 vertalingen kan hebben.
Elke keer als je een vertaling aanmaakt, maakt hij automatisch een post aan om daar die vertaling aan te koppelen.
Wil je een extra vertaling toevoegen aan een bestaand bericht, moet je eerst op het juiste bericht klikken. Omdat de berichten tabel alleen maar een id, created_at en updated_at heeft, kan ik daarvoor dus geen validatie maken. Stel je vergeet een veld van vertalingen in te vullen, krijg ik wel gewoon de validatie meldingen, maar maakt hij nog steeds een post aan zonder gekoppelde vertaling. Ik heb dat nu zo kunnen oplossen:
public function store(Request $request)
{
if($this->validatedData()){
$post = Post::create();
$post->translations()->create($this->validatedData());
}
return redirect('/posts');
}
protected function validatedData(){
return request()->validate([
'lang_id' => 'required',
'title' => 'required',
'content' => 'required',
]);
}
Maar is dit de beste manier/enige? Vind het naar mijn mening een beetje slordig, maar het werkt wel. Als iemand een betere oplossing heeft, hoor ik het graag!