2016-11-19 2 views
0

私はカードを持っていますが、このカードにはタグがあります。したがって、カードには多くのタグがあり、タグはカードに属しています。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); 
} 

上記のよう各タグの項目は配列でなければなりませんし、あなたがそのあなたは何も与えなかったので、私はより具体的なことはできませんリクエストからタグを準備します

+0

車輪を改造することは決して良いことではありません。このためのパッケージを使用してください... https://laravel-news.com/2015/10/how-to-add-tagging-to-your-laravel-app/ – Kyslik

答えて

0

あなたはこのような何かを試すこと私はあなたのシナリオを理解するのに役立つかもしれません。 Check the documentation

+0

I私のシナリオを質問に追加しました。私は実際にsaveManyで作業しようとしましたが、まだカードインスタンスを作成していないときにはうまくいかないようです。だから私は今あなたのシナリオの周りに私の頭を包み込みます。 – JohanStaart

+0

タグはカードに関係しているので、カードを**既に**データベースに挿入して**同期させる必要があります(モデルの更新中はsync()メソッドを使用できます)。 –

関連する問題