我正在处理一个Laravel 4项目,我正在尝试将一堆服务添加到简单服务表中的服务列中。 列的格式为:
id userID services price
我希望它做的是当用户选择用户选择的服务时,用户选择的所有服务都放入服务列中,如下所示:
id userID services price
1 5 clean $4.95
2 5 unload $7.95
3 5 dance $1.95
4 5 vacuum $12.95
5 5 clean $4.95
基本上所有服务都位于不同的输入字段中。所以它们没有关系。
我尝试向模型添加一个数组,但它给出了一个错误:
Array to String conversion
我的控制器的一部分
$service = new Service();
$service->userID = $user->id;
$service->services = array(
Input::get('rooms'),
Input::get('pr_deodorizer'),
Input::get('pr_protectant') .
Input::get('pr_sanitzer'),
Input::get('fr_couch'),
Input::get('fr_chair'),
Input::get('fr_sectional'),
Input::get('fr_ottoman')
);
var_dump($service->services);die;
$service->save();
Laravel不会理解你想从数组中创建模型的各种新实例,所以对于每个服务,你必须为每个服务创建一个单独的服务模型实例,例如。
$service = new Service();
$service->userID = $user->id;
$service->services = Input::get('rooms');
$service->save();
一个想法..也许你可以使用方括号表示法将你的服务分组到你的表单上的PHP数组中:
<div>
<label for="room">Room</label>
<input type="text" id="room" name="services[]">
</div>
<div>
<label for="pr_deodorizer">Deodorizer</label>
<input type="text" id="pr_deodorizer" name="services[]">
</div>
<div>
<label for="pr_protectant">Protectant</label>
<input type="text" id="pr_protectant" name="services[]">
</div>
,然后遍历控制器中的选定服务:
foreach(Input::get('services') as $service)
{
$service = new Service();
$service->userID = $user->id;
$service->services = $service;
$service->save();
}
。这没有经过测试,我不知道你的数据格式是什么,但应该让你开始解决问题。