2015-01-16 2 views
0

Вот часть моего контроллера;Выберите drop down from table array

$agreements = Agreement::all(); 

print_r($agreements) //this works and displays an object/array with the details! 

return View::make('individual_agreements.create') 
    ->with('individual', $individual) 
    ->with('agreements', $agreements) 
    ->with('content_title', 'Create new individual agreement'); 

Это часть моего вида;

<div class="form-group"> 
    {{ Form::label('agreement_name', 'Agreement name') }} 
    {{ Form::select('agreement_name', $agreements->agreement_name) }} 
</div> 

У меня есть поле, называемое agreement_name в таблице .. Все, что я хочу сделать, это включить, что в к выпадающему списку наиболее эффективной Laravel/красноречиво, как это возможно.

Я продолжаю получать стандартную ошибку «соглашение_имя не определено», и я не могу найти подходящий пример в любом месте онлайн, ища более часа.

ответ

1

Если вам нужны соглашения на что-то другое на той же странице попробовать

<div class="form-group"> 
    {{ Form::label('agreement_name', 'Agreement name') }} 
    {{ Form::select('agreement_name', $agreements->lists('agreement_name', 'agreement_name')) }} 
</div> 

Это позволит получить все названия соглашений в рамках вашей коллекции договоров и разрешить им o использовать в раскрывающемся списке выбора. Первый параметр - это столбец, а второй - ключ.

Else просто измените свой запрос;

$agreements = Agreement::lists('agreement_name', 'id'); 
0

Вы должны сделать это

$agreements = Agreement::lists('agreement_name', 'id'); 

all вернет вам все столбцы в таблице, так вот почему ваш код не будет работать

0

Путь вы это настроить позволяет использование foreach цикла к списку и отображения результатов:

<select name="agreement_name" class=""> 
    <option value="">- Select -</option> 
    @foreach($agreements AS $agreement) 
    <option value="{{ $agreement->id }}">{{ $agreement->agreement_name }}</option> 
    @endforeach 
</select> 

Так как ваш $agreements представляет собой массив элементов, вызывая $agreements->agreement_name бы не работа, а $agreements[0]->agreement_name, вероятно, будет. Если вы хотите использовать опцию Form::select(), вам нужно будет использовать другой способ получения ваших соглашений. Проверьте другие ответы для этого решения.

Надеюсь, это обеспечило некоторую проницательность!

Редактировать

Я хотел бы отметить, что это не Laravel Way делать вещи, но это, безусловно, жизнеспособным.

Смежные вопросы