我在Laravel 5.2中有多语言,并尝试在表格中创建具有相同ID的每种语言的行。
所以,我的意思是:
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>
您可以看到这是一个包含三种相似形式的页面,区别仅在于字段语言。
因此,当我提交每个表单时,我需要创建具有相同标识的三行。
我该怎么做?
答案 0 :(得分: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,或者您引用该语言。如果你想插入&#34;多个&#34;行(3,如你所指出的)你需要进行多次插入。
对于多个字段,不仅仅是name
,您可以用同样的方式添加更多<input>
:
<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>
然后在你的控制器中:
$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
]);
}