好的,所以我在Laravel 5中添加了Form功能,并且已经在这些教程中使用它了。我一般都是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。
答案 0 :(得分:1)
您已经创建了$ todo_list对象,但已将其作为$ TodoList传递给您的视图。
请尝试使用以下内容
return view('items.create', ['todo_list' => $todo_list]);
从控制器调用视图时,数据数组中使用的键就是变量将在页面上可用的内容。