0

私は自分のプロジェクトがクライアントに関連する関係のセットアップを持っています。私がしたいことは、ドロップダウンリストからプロジェクト作成ビューで選択を選択できるようにすることです。

これは次のように達成できます。

{{ Form::select('client', array('s' => 's', 'm' => 'm'), 's');}}

ただし、データベースから取得しているデータからこれを動的に行う方法がわかりません。これまでのコードは次のとおりです。

{{ Form::open(array('action' => 'ProjectController@store', 'id' => 'createproject')) }}
  <div class="form-group">
  <? $projects = Auth::user()->clients; ?>
@if (Auth::check())
    @if (count($projects) > 0)
   @foreach ($projects as $client)

{{ Form::select('client', array('client_one' => 'client_one', 'client_two' => 'client_two'), 'client_one');}}

   @endforeach 
   @else
    <h3>You have no projects click <a href="/project/create">here to create a project</a></h3>
@endif
@endif
</div>
<div class="form-group">
    {{ Form::label('project_name', 'Project Name') }}
    {{ Form::text('project_name', Input::old('project_name'), array('class' => 'form-control')) }}

</div>

この選択フィールドを動的に入力する方法を教えてもらえますか?

前もって感謝します!

4

2 に答える 2

3

ビューでデータ処理を行うことはお勧めできません。あなたがすべきことは、コントローラーで配列を準備し、その配列をビューで使用することです。

あなたのコントローラーで。

    $clients = Auth::user()->clients;
$client_selector = array();

foreach($clients as $client) {
    $client_selector[$client->name] = $client->name; // I assume name attribute contains client name here
}

return View::make('your.view', array(.., 'client_selector' => $client_selector, ...));

あなたの見解では。

@if(count($client_selector)>0)
    {{Form::select('client', $client_selector, array_values($client_selector)[0])}}
@endif 
于 2013-11-11T19:20:32.957 に答える
0

これはより良い解決策だと思います:

コントローラーで:

$clients = Auth::user()->clients->lists('name', 'name');

return View::make('your.view', array(.., 'clients' => $clients, ...));

あなたの見解では:

    {{ Form::select('client', $clients) }}
于 2014-07-10T13:34:21.650 に答える