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