【问题标题】:Laravel 5 Form parameter issueLaravel 5 Form参数问题
【发布时间】:2015-07-16 01:55:08
【问题描述】:

好的,我已经在 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。

【问题讨论】:

  • 您能告诉我们您的todos.item.store 路线以及与您的待办事项列表相关的任何其他路线吗?
  • 我已经添加了路线,但它不应该与此有任何关系,因为如果删除了参数,表单会呈现得非常好,但需要像声明的那样获取正确列表的 id将项目添加到并发送到 store 方法。

标签: php laravel-5 laravel-form


【解决方案1】:

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

尝试使用以下代替

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

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

【讨论】:

  • 好的,谢谢你修复它!从来没有真正理解过密钥的实际用途,但这有助于澄清。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-24
  • 2015-05-29
  • 2016-12-21
  • 1970-01-01
  • 2017-02-13
相关资源
最近更新 更多