我希望將我的複選框組Form::checkbox('services[]')
與來自數據透視表的數據綁定,但我遇到了麻煩,我認爲這是因爲沒有密鑰與service_id
。用Laravel Form Builders使用複選框組綁定數據透視表
我的數據模型如下:
業務
服務
Business_Service許多存儲許多鏈接表。
刀片模板
@foreach($service as $service)
{!! Form::checkbox('services[]', $service->id, (in_array($service->id, $selected_services) ? true : false)) !!}
@endforeach
控制器
$service = Service::all();
$selected_services = Auth::user()->business->services()->get();
return view('signup.step2', compact('service', 'selected_services'));
當我回到$ selected_services我可以看到以下內容:
[{ 「ID」:2,「名稱「:」服務 1「,」圖像「:」picture.png「,」created_at「:」2017-03-31 00:31:20「,」updated_at「:」2017-03-31 00:31:20「,」pivot「:{」business_id「:103,」service_id「:2}},{」id「: 3,「name」:「服務 2」,「image」:「picture.png」,「created_at」:「2017-03-31 00:31:23」,「updated_at」:「2017-03-31 零點31分23" 秒, 「樞軸」:{ 「business_id」:103, 「service_id爲」:3}}]
我試圖改變$selected_services
這樣的:
$selected_services = Auth::user()->business->services()->keyBy('service_id');
但這隻返回一行,並不按預期將某個鍵關聯到該行。
一個小小的點(in_array($服務 - > ID,$ selected_services)真的?假的)'是'in_array'已經返回一個布爾值,所以三元是多餘的。改用'in_array($ service-> id,$ selected_services)'。 – fubar