2016-08-19 12 views
0

私はLaravel 5.2で多言語を使用していて、各言語に同じidを持つテーブルに行を作成しようとしています。同じIDでDBにいくつかのノートを作成するには?

だから、私は次のことを意味:

Add article 
<form> 
    <input type="name" value=""> 
    <input type="hidden" name="lang" value="1"> 
    <input type="submit" value="Add"> 
</form> 

<form> 
    <input type="name" value=""> 
    <input type="hidden" name="lang" value="2"> 
    <input type="submit" value="Add"> 
</form> 

<form> 
    <input type="name" value=""> 
    <input type="hidden" name="lang" value="3"> 
    <input type="submit" value="Add"> 
</form> 

あなたはこれを見ることができる3つの類似したフォーム、違いが1ページには、専用フィールド言語になっています。

私はそれぞれのフォームを提出すると、同じ識別情報を持つ3つの行を作成する必要があります。

どうすればいいですか?

答えて

2

私は、単一のフォームを使用することをお勧めしたい:

<form> 
    <input type="name[1]" value=""> 
    <input type="name[2]" value=""> 
    <input type="name[3]" value=""> 
    <input type="submit" value="Add"> 
</form> 

次に、あなたのコントローラにだけ追加します。

$names = $request->input('name'); 
foreach($names as $lang => $name) { 
    //Example insert query 
    DB::table('table')->insert([ 
     'name' =>$name, 
     'lang_id' => $lang 
    ]); 
} 

あなたは簡単に、より多くの言語を追加扱うことができるこの方法を。

編集:インデックスなしで名前を使用できますが、その言語はわかりません。これらの索引は、言語IDである必要がありますが、その言語を参照している必要があります。複数の行(3つ、あなたが指摘したように)を挿入する場合は、複数の挿入を行う必要があります。お使いのコントローラで

<form> 
    <input type="name[1]" value=""> 
    <input type="name[2]" value=""> 
    <input type="name[3]" value=""> 

    <input type="description[1]" value=""> 
    <input type="description[2]" value=""> 
    <input type="description[3]" value=""> 

    <input type="submit" value="Add"> 
</form> 

そして:複数のフィールドについて

、ちょうどnameあなたは同じように、より<input>秒を追加することができません

$names = $request->input('name'); 
$descriptions = $request->input('description'); 

//If $names and $descriptions rely on the same languages you can do. 

foreach($names as $lang => $name) { 
    //Example insert query 
    DB::table('table')->insert([ 
     'name' => $name, 
     'description' => $description[$lang] 
     'lang_id' => $lang 
    ]); 
} 
+0

私は '名[]'使用することはできますか?インデックスなし? – Dev

+0

これは良い解決策ではないと思います。なぜなら名前[]だけでなく、ループのたびにDBを呼び出すためです。 – Dev

+0

@Dev編集であなたの質問に答えました。 –

関連する問題