本文介紹了如何在數據庫的同一列中保存多個行的輸入?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
數據庫表
id | title | reading | writing | speaking
form.blade.php
form.blade.php
<table><tr>
<th>Language</th>
<th>Reading</th>
<th>Writing</th>
<th>Speaking</th>
</tr>
<tr>
<td>
<input name="TitleText_1" id="TitleText_1"/></td>
<td>
<select name="ReadingText_1" id="ReadingText_1">
<option value="High">High</option>
<option value="Medium">Medium</option>
<option value="Low">Low</option>
</select>
</td>
<td>
<select name="langWrittingText_1" id="WrittingText_1">
<option value="High">High</option>
<option value="Medium">Medium</option>
<option value="Low">Low</option>
</select>
</td>
<td>
<select name="SpeakingText_1" id="SpeakingText_1">
<option value="High">High</option>
<option value="Medium">Medium</option>
<option value="Low">Low</option>
</select>
</td>
</tr>
<tr>
<td>
<input name="TitleText_2" id="TitleText_2" /></td>
<td>
<select name="ReadingText_2" id="ReadingText_2">
<option value="High">High</option>
<option value="Medium">Medium</option>
<option value="Low">Low</option>
</select>
</td>
<td>
<select name="WrittingText_2" id="WrittingText_2">
<option value="High">High</option>
<option value="Medium">Medium</option>
<option value="Low">Low</option>
</select>
</td>
<td>
<select name="SpeakingText_2" id="SpeakingText_2">
<option value="High">High</option>
<option value="Medium">Medium</option>
<option value="Low">Low</option>
</select>
</td>
語言控制器.php
$languages = Language::create(array
(
'title' => $input['TitleText_1'],
'reading' => $input['ReadingText_1'],
'writting' => $input['WrittingText_1'],
'speaking' => $input['SpeakingText_1'],
$languages->save();
));
我想要將控制器代碼保存到數據庫中.因為有多個相同標簽的輸入.
I want what will be the controller code to save into the database. as there are multiple inputs of same label.
如何獲取控制器中的所有輸入?另外如何將多個輸入保存到同一列的數據庫中?我是 Laravel 4.2 的新手.
How to get all the inputs in controller? Also how to save multiple inputs into database of same column? I am a newbie of Laravel 4.2.
推薦答案
像這樣使用多個同名輸入
Use multiple inputs with same name like this
<input name="TitleText[]" />
<select name="ReadingText[]" >
...
<select name="langWrittingText[]">
...
<select name="SpeakingText[]">
...
這樣數據就會以數組的形式發布.假設所有的輸入/選擇都需要用戶填寫
This way the data will be posted in the form of an array. Assuming that all the inputs/select are required to be filled by the user
在你的控制器中你可以做這樣的事情
In your controller you can do something like this
$count = count($input['TitleText']); // here we will know how many entries have been posted
$languages = array();
for($i=0; $i<$count; $i++){
if(!empty($input['TitleText'][$i])){
array_push($languages, array( // iterate through each entry and create an array of inputs
'title' => $input['TitleText'][$i],
'reading' => $input['ReadingText'][$i],
'writting' => $input['WrittingText'][$i],
'speaking' => $input['SpeakingText'][$i]
));
}
}
Languages::insert($languages); // save the array of models at once
希望這會有所幫助.
這篇關于如何在數據庫的同一列中保存多個行的輸入?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!
【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!