2013-07-21 54 views
6

Đấu tranh với một vấn đề trong Laravel 4, trong biểu mẫu sửa đổi "liên hệ", tôi có thể nhận tất cả các giá trị hiện tại của trường trừ các giá trị từ nhiều lựa chọn để thiết lập quan hệ với một mô hình khác ". Đó là một mối quan hệ nhiều-nhiều. Tôi nhận được danh sách các công ty, nhưng không có công ty nào được chọn ngay cả khi mối quan hệ tồn tại.Nhiều lựa chọn giá trị sửa mẫu lựa chọn

Dưới đây là chỉnh sửa hình thức của tôi:

{{ Form::model($contact, array('route' => array('crm.contacts.update', $contact->id), 'id' => 'edit-contact')) }} 
     <div class="control-group"> 
      {{ Form::label('first_name', 'First Name', array('class' => 'control-label')) }} 
      {{ Form::text('first_name') }} 
     </div> 
     <div class="control-group"> 
      {{ Form::label('last_name', 'Last Name', array('class' => 'control-label')) }} 
      {{ Form::text('last_name') }} 
     </div> 
     <div class="control-group"> 
      {{ Form::label('email', 'Company Email', array('class' => 'control-label')) }} 
      {{ Form::text('email') }} 
     </div> 
     <div class="control-group"> 
      {{ Form::label('company_ids', 'Company', array('class' => 'control-label')) }} 
      {{ Form::select('company_ids[]', $companies, array('',''), array('multiple'), Input::old('company_ids[]')) }} 
     </div> 
{{ Form::close() }} 

điều khiển của tôi:

public function edit($id) 
{ 
    $contact = Contact::find($id); 
    $company_options = Company::lists('name', 'id'); 
    return View::make('crm.contacts.edit') 
     ->with('contact', $contact) 
     ->with('companies', $company_options);; 
} 

Bất kỳ ý tưởng về làm thế nào để có nhiều lựa chọn lĩnh vực điền sẵn với giá trị hiện tại?

Cảm ơn

Trả lời

12

Laravel không không hỗ trợ chọn nhiều lĩnh vực theo mặc định bạn cần phải sử dụng một mẫu :: vĩ mô

Ví dụ dưới đây bởi @Itrulia là đúng, bạn chỉ có thể làm:

$users = array(
    1 => 'joe', 
    2 => 'bob', 
    3 => 'john', 
    4 => 'doe' 
); 
echo Form::select('members[]', $users, array(1,2), array('multiple' => true)); 
+0

Vị trí tốt nhất để chèn cái này ở đâu? start.php? Cảm ơn – maunoxyd

+0

chắc chắn, tôi sử dụng một tập tin FormMacros.php và tôi bao gồm nó trong app/start/global.php – Ryun

+1

mảng (1,2) được coi là các mục được chọn, phải không ?? Tôi đã thử nó nhưng nó không hoạt động. Xin vui lòng, cần thêm lời giải thích. Cảm ơn. @Ryun –

10

Laravel không hỗ trợ đa lựa chọn theo mặc định.

{{ Form::select('members[]', $users, null, array('multiple' => true)); }} 
+0

Nó có thể đặt thuộc tính html, nhưng nó sẽ không xử lý biến trường đã chọn dưới dạng mảng .. Thông số được chọn chỉ chấp nhận một chuỗi .. – Ryun

+0

Không, điều đó sai. trong đó null chỉ thiết lập một mảng các giá trị và nó hoạt động. – Itrulia

+0

Ok chỉ cần thử nghiệm, tôi đứng sửa chữa! xin lỗi vì việc đó. – Ryun

Các vấn đề liên quan