2015-05-06 1 views
0

Хорошо, поэтому я добавил в функциональность Form как можно точнее в Laravel 5 и использовал ее в этих руководствах. Я совершенно новый для Laravel в целом и не вижу, чтобы узнать, что происходит не так. У меня есть вложенный маршрут, который является todos.items.create, поэтому для создания нового элемента в этом списке мне нужно будет передать этот идентификатор в тег Form :: open. Однако при этом я получаю Упс, похоже, что что-то пошло не так. Теперь, если я удаляю параметр $ todo_list-> id, страница загружается нормально, но с ней я всегда получаю эту ошибку. Вот мой кодLaravel 5 Проблема с параметром формы

Контроллер:

public function create($list_id) 
{ 
    $todo_list = TodoList::findOrFail($list_id); 
    return view('items.create', ['TodoList' => $todo_list]); 
} 

Create View (create.blade.php в стороне папку мои пункты в папке просмотров)

{!! Form::open(array('route' => ['todos.items.store', $todo_list])) !!} 

Когда только делает под ним делает хорошо но делать то, что нужно, это не так. Это потому, что мне нужен идентификатор списка, в котором необходимо создать новый элемент в

{!! Form::open(array('route' => ['todos.items.store'])) !!} 

Маршруты.

Route::get('/', '[email protected]'); 
Route::resource('todos', 'TodoListController'); 
Route::resource('todos.items', 'TodoItemController', ['except' => ['index', 'show'] ]); 

Любые идеи, что я делаю неправильно здесь? Я запустил var_dump из $ todo_list-> id перед возвратом вида только для проверки вещей, и он вернул правильный идентификатор.

+0

Можете ли вы показать нам свой маршрут todos.item.store и любые другие маршруты, относящиеся к вашим спискам todo? – Scopey

+0

Я добавил маршруты, он не должен ничего делать с этим, хотя, поскольку форма отлично отображает, если параметр удален, но, как указано, необходимо, чтобы получить идентификатор правильного списка, чтобы добавить элемент и отправить его к способу хранения. – claytoncasey01

ответ

1

Вы создали объект $ todo_list, но передали его вашему представлению в виде $ TodoList.

Попробуйте использовать следующие вместо

return view('items.create', ['todo_list' => $todo_list]); 

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

+0

Хорошо, спасибо, что исправил это! Никогда не понимал, на что ключ фактически использовался, но это помогает прояснить. – claytoncasey01