Выберите несколько выпадающих списков из базы данных в Laravel - PullRequest
0 голосов
/ 01 февраля 2019

в моем веб-приложении я добавил несколько данных в базу данных из json_encode, используя несколько вариантов выбора.

в столбце моей базы данных, как показано ниже.

["Agriculture & Food Processing","Automobiles","Banking & Financial Services"]

Теперь я хочучтобы получить эти данные для редактирования и обновления.мой взгляд похож на прикрепленное изображение

enter image description here

Мой код похож на ниже

<div class="form-group">
<label for="industry">Intrsting Industry</label>
<select id="industry" name="industry[]" class="form-control" multiple>
    <option value="">Select Option  </option>
    <option>Agriculture &amp; Food Processing</option>
    <option>Automobiles</option>
    <option>Banking &amp; Financial Services</option>
    <option>BPO / KPO </option>
    <option>Civil &amp; Construction</option>
    <option>Consumer Goods &amp; Durables</option>
    <option>Consulting</option>
    <option>Education</option>
    <option>Engineering</option>
    <option>Ecommerce &amp; Internet</option>
    <option>Events &amp; Entertainment</option>
    <option>Export &amp; Import</option>
    <option>Government &amp; Public Sector</option>
    <option>Healthcare</option>
    <option>Hotel, Travel &amp; Leisure</option>
    <option>Insurance</option>
    <option>IT &amp; Telecom</option>
    <option>Logistics &amp; Transportation</option>
    <option>Manufacturing</option>
    <option>Manpower &amp; Security</option>
    <option>News &amp; Media</option>
    <option>NGO &amp; Non profit</option>
    <option>Pharmaceutical</option>
    <option>Real Estate</option>
    <option>Wholesale &amp; Retail</option>
    <option>Others</option>
  </select>

Так как можноЯ выбрал выше список из базы данных.

1 Ответ

0 голосов
/ 01 февраля 2019

на самом деле вам не нужно json_encode вручную, laravel имеет возможность cast любой атрибут для массива / json:

Мы предполагаем, что ваша модель называется Item.

//Model
class Item{
   protected $casts = [
      'industry' => 'array'
   ]
//snap
}
//Controller
class ItemController extends Controller{
   //snap   
   public function update($id,\Request $request){
      $item = Item::findOrFail($item);
      // no need to json_encode! laravel handle this magically!
      $item->industry = $request->industry;
      $item->save();
   }
   //snap
   public function show($id){
      $item = Item::findOrFail($id);
      return view('item.show',compact('item'));
   }
}
@php
   // just making an array of industry options, so later we will iterate on it.
   $industries = [
      'Agriculture &amp; Food Processing',
      'Automobiles',
      'Banking &amp; Financial Services',
      //list all the industries here
   ];
@endphp
<select id="industry" name="industry[]" class="form-control" multiple>
   <!-- default value -->
    <option value="">Select Option </option>
    @foreach($industries as $industry)
       <!-- if industry found in current item's industry field we add selected to it -->
       <option @if(in_array($industry,$item->industry)) selected @endif>{{$industry}}</option>
    @endforeach
  </select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...