Laravel 5.1检索多个输入值,并插入到数据库
我都当你问一个名为category
的输入形式,可以有多个值,就像在计算器tags
输入表单中的问题
我想从表单中的所有输入值和将其插入到category_service
透视表
我用$category = implode(",", Input::get('category'));
得到数组值
然后我得到Invalid argument supplied for foreach()
错误时尝试使用此代码插入:Laravel 5.1检索多个输入值,并插入到数据库
foreach ($category as $category) {
DB::insert('INSERT INTO category_service (category_id, service_id) VALUES (?,?)', array('$category', $service->id));
}
表如下所示:
category_table
+----+--------------+
| id | category |
+----+--------------+
| 1 | category_1 |
| 2 | category_2 |
+----+--------------+
service_table
+----+--------------+
| id | service |
+----+--------------+
| 1 | service_1 |
+----+--------------+
category_service_table //pivot table to store category id and service id
+----+--------------+-------------+
| id | category_id | service_id |
+----+--------------+-------------+
| 1 | 1 | 1 |
| 2 | 2 | 1 |
+----+--------------+-------------+
的var_dump
结果是string(3) "2,1"
$category = implode(",", Input::get('category'));
破灭从阵列
做出串尝试
$category = Input::get('category'); if (!empty($category) && is_array($category)) { foreach ($category as $val) { DB::insert('INSERT INTO category_service (category_id, service_id) VALUES (?,?)', array((int) $val, $service->id)); } }
得到'$ service-> id'值,谢谢,它现在的作品 – Spadaboyz
使用PHP implode
功能你接合阵列串并传递字符串FOREACH,结果Invalid argument supplied for foreach()
错误。你与explode
混淆?查看官方文档。 Implode和Explode。另外,最好在foreach中使用复数和单数命名,如foreach ($categories as $category)
。
而对于Laravel插入使用:
DB::table('category_service')->insert(
['category_id' => $category, 'service_id' => $service->id]
);
而且,你把$category
在一个单引号和可变不会执行,它将作为一个字符串传递。
另外,您是否获得$service->id
?
我从另一个数据库查询 – Spadaboyz
请提供关于你的问题的更多细节。另外添加'类别'转储到您的问题, – Qazi