我想将我的复选框组Form::checkbox('services[]')
与来自我的数据透视表的数据绑定,但我遇到了麻烦,我认为这是因为没有密钥返回{{1 }}
我的数据模型如下:
商家
的服务
Business_Service 表,用于存储多对多链接。
刀片模板
service_id
控制器
@foreach($service as $service)
{!! Form::checkbox('services[]', $service->id, (in_array($service->id, $selected_services) ? true : false)) !!}
@endforeach
当我返回$ selected_services时,我可以看到以下内容:
[{" ID":2"名称":"服务 1""图像":" picture.png"" created_at":" 2017年3月31日 00:31:20""的updated_at":" 2017年3月31日 00:31:20""枢轴" {" business_id":103,"的service_id":2}},{" ID&# 34;:3,"名称":"服务 2""图像":" picture.png"" created_at":" 2017年3月31日 00:31:23""的updated_at":" 2017年3月31日 00:31:23""枢轴" {" business_id":103,"的service_id":3}}]
我尝试过这样更改$service = Service::all();
$selected_services = Auth::user()->business->services()->get();
return view('signup.step2', compact('service', 'selected_services'));
:
$selected_services
但是这只会返回一行,并且不会按预期将某个键与该行关联。
答案 0 :(得分:0)
我可以准备另一个数组,而不是使用Eloquent返回的集合,但我希望Laravel可以使用一些内置函数。
$service = Service::all();
$business_services = Auth::user()->business->services()->get();
$selected_services = [];
foreach ($business_services as $ss) {
$selected_services[] = $ss->pivot->service_id;
}
return view('signup.step2', compact('service', 'selected_services'));
答案 1 :(得分:0)
如果您想使用内置的Laravel功能,那么您可以使用Collection::pluck
功能。
$businessServices = Auth::user()->business->services->pluck('id');