带有输入表单的 Laravel 路由视图

Posted

技术标签:

【中文标题】带有输入表单的 Laravel 路由视图【英文标题】:Laravel route for view with an input form 【发布时间】:2017-03-21 11:30:07 【问题描述】:

使用 Laravel 5.3 我想要一个路由,它指向一个带有表单的视图以创建一个新对象

我有这些路线

//to show all lectures
Route::get('lectures', 'LecturesController@index');

//to show specific lecture
Route::get('lectures/lecture', 'LecturesController@show');

//to display form to create a new Lecture
Route::get('lectures/create', 'LecturesController@create');

//to handle process of creating a new lecture
Route::post('lectures/create','LecturesController@store');

除了应该显示添加新讲座表格的路线之外的所有工作。

public function create()
    return view('lectures.create');

它甚至没有到达控制器,因为当我去地址“localhost/lectures/create”时,我得到了这两个异常:

ModelNotFoundException in Builder.php line 311:
No query results for model [App\Lecture].

NotFoundHttpException in Handler.php line 113:
No query results for model [App\Lecture].

我不知道为什么当方法索引、显示和存储工作时它不起作用...

【问题讨论】:

【参考方案1】:

您需要在Route::get('lectures/create', 'LecturesController@create'); 之后拥有Route::get('lectures/lecture', 'LecturesController@show');。 Laravel 将匹配第一条路线然后停止,因此您实际上正在访问 Route::get('lectures/lecture', 'LecturesController@show'); 并在您的 show 方法中访问 $lecture === 'create'

【讨论】:

谢谢!现在可以了!我没有意识到它是按顺序通过的。

以上是关于带有输入表单的 Laravel 路由视图的主要内容,如果未能解决你的问题,请参考以下文章

《PHP框架Laravel学习》系列分享专栏

带有角度路由的 Laravel 5 中间件

Laravel 路由相同的基本路径

Laravel 5.4:发布没有表单或隐藏 url 的路由

Laravel - 使用 Javascript 调用带有所需参数的路由

在 Laravel 5.1 中通过 AJAX 将用户输入数据从视图传递到控制器