私はカードを持っていますが、このカードにはタグがあります。したがって、カードには多くのタグがあり、タグはカードに属しています。Laravel同時にデータベースに1対多に入力する
ユーザーがフォームに入力します。彼はカードとタグの両方の情報を提供します。
ここでは、各タグに情報 'card_id'を付けて接続できるようにする必要があります。
私はこの 'card_id'がまだ分かっていないという問題は、データベースが両方とも同時に作成されているので、まだIDを割り当てていないためです。
マイ状況:
public function create(Request $request)
{
$this->validate($request,[
'function' => 'max:255',
'description' => 'max:255',
'rate' => 'max:255',
'location' => 'max:255'
]);
$card = new Card;
$card->user_id = Auth::id();;
$card->function = $request->function;
$card->description = $request->description;
$card->rate = $request->rate;
$card->location = $request->location;
// I also tried this: $card->tag()->saveMany($tagsArray); (Did not work)
$card->save();
$tagsArray = explode(',', $request->tagsarray);
foreach($tagsArray as $tagInput) {
$tag = new Tag;
$tag->card_id = 'Cant know this yet :(';
$tag->tag = $tagInput;
$tag->save();
}
return redirect('/page');
}
誰かがこれについて移動する方法を知っていますか? 、今
$card = new Card([
'card_name' => request()->get('card_name'),
'something_else' => request()->get('something_else')
]);
if($card->save()) {
$tags = [];
// Get the tag information from request
$tagsFromRequest[
['tag_title' => 'A Tag', 'tag_slug' => 'a_tag'],
['tag_title' => 'Another Tag', 'tag_slug' => 'another_tag']
];
foreach($tagsFromRequest as $tag) {
$tags[] = new Tag($tag);
}
$card->tags()->saveMany($tags);
}
上記のよう各タグの項目は配列でなければなりませんし、あなたがそのあなたは何も与えなかったので、私はより具体的なことはできませんリクエストからタグを準備します
車輪を改造することは決して良いことではありません。このためのパッケージを使用してください... https://laravel-news.com/2015/10/how-to-add-tagging-to-your-laravel-app/ – Kyslik