【问题标题】:Laravel route modelLaravel 路由模型
【发布时间】:2015-01-14 02:54:51
【问题描述】:

您好,我在学习 laravel 和 mvc 的书中有这段代码

Route::model('cat', 'Cat');


Route::get('cats/test', function()
{   
    return "test_working";
});

Route::get('cats/{cat}', function(Cat $cat) {
return View::make('cats.single')
->with('cat', $cat);
});

Route::get('cats/create', function() {
    $cat = new Cat;
    return View::make('cats.edit')
    ->with('cat', $cat)
    ->with('method', 'post');
});

如果第 2 条路由在第 3 条,则丢弃 NotFoundHttpException 我知道它与猫/{cat} 和模型有关,有人可以解释它为什么会发生 当然我可以移动代码,但我想知道为什么。谢谢。

【问题讨论】:

  • 抛出异常的 URL 是什么?
  • Route::get('cats/create', function()...

标签: php laravel laravel-routing


【解决方案1】:

Route::get('cats/{cat}' 将“捕获”/cats/create,因为一个路由中的 {cat} 部分匹配任何内容。不仅是 id,还有create。您可以将顺序更改为此顺序,以便在限制较少的路线 (cats/{cat}) 之前拥有更受限制的路线 (cats/create),或者您可以使用正则表达式来仅允许 {cat} 的数字:

Route::get('cats/{cat}', function(Cat $cat) {
    return View::make('cats.single')
    ->with('cat', $cat);
})->where('cat', '[0-9]+');

【讨论】:

    猜你喜欢
    • 2021-05-24
    • 2016-06-04
    • 2017-06-22
    • 2015-08-28
    • 2017-07-06
    • 1970-01-01
    • 2018-12-17
    • 2015-07-12
    • 2020-05-05
    相关资源
    最近更新 更多