2013-07-21 29 views
6

Laravel 4の問題で悩んでいる "連絡先"モデルの編集フォームで、別のモデル "会社との関係を確立する複数の選択肢"それは多対多関係です。私は企業のリストを取得していますが、関係が存在しても選択されていない企業はあります。複数の選択編集フォームの選択された値

は、ここに私の編集フォームです:

{{ 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() }} 

マイコントローラ:

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);; 
} 

複数選択フィールドは、既存の値が事前に満たされているとどのように上の任意のアイデアは?

答えて

12

Laravelはあなたがフォームを使用する必要がデフォルト ない サポート複数選択フィールドを行いおかげ::マクロ

@Itruliaによって以下の例は正しかった、あなたは簡単に行うことができます。

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

これを挿入する場所はどこですか? start.php?ありがとう – maunoxyd

+0

確かに、私はFormMacros.phpファイルを使用して、アプリケーション/ start/global.phpに含めます – Ryun

+1

配列(1,2)は選択された項目であると思われますか? 私はそれを試しましたが、うまくいきません。より多くの説明が必要です。おかげさまで @Ryun –

10

Laravelはデフォルトで複数選択をサポートしています。

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

html属性を設定することができますが、選択されたfields変数を配列として処理しません。選択されたパラメータは文字列のみを受け取ります.. – Ryun

+0

いいえ、それは間違っています。 nullはちょうど値の配列に設定され、動作します。 – Itrulia

+0

ただ、テストしました、私は訂正しました!ごめんなさい。 – Ryun

関連する問題