Php Laravel 5.1检索多个输入值并插入数据库
我有一个名为Php Laravel 5.1检索多个输入值并插入数据库,php,mysql,laravel-5.1,Php,Mysql,Laravel 5.1,我有一个名为category的输入表单,它可以有多个值,就像你提问时stackoverflow中的标签一样输入表单 我想从该表单中获取所有输入值,并将其插入到category\u servicepivot表 我使用$category=introde(“,”,Input::get('category')获取数组值 然后,当尝试使用以下代码插入foreach()时,我得到了为foreach()提供的无效参数。错误: foreach ($category as $category) { DB:
category
的输入表单,它可以有多个值,就像你提问时stackoverflow中的标签一样输入表单
我想从该表单中获取所有输入值,并将其插入到category\u service
pivot表
我使用$category=introde(“,”,Input::get('category')
获取数组值
然后,当尝试使用以下代码插入foreach()时,我得到了为foreach()提供的无效参数。
错误:
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\u dump
结果是string(3)“2,1”
使用PHP内爆
函数将数组连接到字符串并将字符串传递给foreach,结果是为foreach()提供的参数无效。
错误。你把它和爆炸混淆了吗?见官方文件。和。此外,最好在foreach中使用复数和单数命名,如foreach($categories as$category)
对于Laravel插入使用:
DB::table('category_service')->insert(
['category_id' => $category, 'service_id' => $service->id]
);
另外,您将$category
放在一个引号中,变量将不会执行,它将作为字符串传递
另外,您是否获得了$service->id
?$category=introde(“,”,Input::get('category')代码>
内爆从数组中生成一个字符串
试一试
$category=Input::get('category');
if(!empty($category)&&is_数组($category)){
foreach($val类别){
DB::insert('insert INTO category_服务(category_id,service_id)值(?,)',数组((int)$val,$service->id));
}
}
请提供有关您的问题的更多详细信息。另外,在您的问题中添加Category
dump,我从另一个db查询中获得了$service->id
值