0

好的,所以我已经在 Laravel 5 中很好地添加了表单功能,并且在这些教程中一直在使用它。总的来说,我对 Laravel 来说是全新的,无法找出问题所在。我有一个嵌套路由 todos.items.create,因此要在该列表中创建一个新项目,我必须将该 ID 传递到 Form::open 标记中。但是,当我这样做时,我得到了一个糟糕的结果,看起来好像出了点问题。 现在,如果我删除 $todo_list->id 参数页面加载正常,但我总是得到这个错误。这是我的代码

控制器:

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

创建视图(在视图文件夹内的我的项目文件夹中的 create.blade.php)

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

当只做下面的事情时,它可以很好地呈现,但做上面需要的事情却没有。这是因为我需要在其中创建新项目的列表的 ID。

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

路线:

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

有什么想法我在这里做错了吗?我在返回视图之前运行了 $todo_list->id 的 var_dump,只是为了检查并返回正确的 id。

4

1 回答 1

1

您已经创建了 $todo_list 对象,但已将它作为 $TodoList 传递给您的视图。

尝试使用以下内容

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

从控制器调用视图时,数据数组中使用的键是页面上可用的变量。

于 2015-05-06T05:33:47.323 回答