2015-01-24 1 views
1

Как отобразить список книг в подборщике форм laravel?Laravel 4 отображает список данных в выбор формы

BookController.php

$book_names = Book::all(); 

return View::make('books')->with('book_names', $book_names); 

На данный момент я только знаю, как сделать вручную входные данные:

{{ Form::select('book_name', array(
    'book1' => 'book1', 
    'book2' => 'book2', 
    'book3' => 'book3') 
}} 

Я хочу сделать что-то вроде этого:

{{ Form::select('book_name', array(
    @foreach($book_names as $book_name) 
    $book_name->name => $book_name->name, 
    @endforeach 
}} 

Но очевидно, Это не сработает.

ответ

1

Познакомьтесь с методом . Это позволяет создать массив из одного или двух (ключ и значение) свойства коллекции:

$book_names = Book::lists('name'); 

return View::make('books')->with('book_names', $book_names); 

А потом просто передать этот массив:

{{ Form::select('book_name', $book_names) }} 
+0

мы можем отобразить список как ключ массива и значения ? например $ user = Auth :: user() -> role-> lists ('name'). Можем ли мы сделать это как echo $ user [0], $ user [1]. Очевидно, это не сработает. – MaXi32

+1

@ MaXi32 В Laravel 5.1 вам нужно добавить 'all()' в конце, чтобы получить фактический массив: '$ user = Auth :: user() -> role-> lists ('name') -> all () ' – lukasgeiter