Php 拉威尔没有';我无法识别有效的路线
我正在使用Laravel作为Cat管理应用程序,我在创建Cat时遇到了问题,因为Laravel为我的路线返回404Php 拉威尔没有';我无法识别有效的路线,php,mysql,laravel,Php,Mysql,Laravel,我正在使用Laravel作为Cat管理应用程序,我在创建Cat时遇到了问题,因为Laravel为我的路线返回404 Route::get('cats/create', function() { $cat = new Cat; return View::make('cats.edit') ->with('cat',$cat) ->with('method','post'); }); 此路由返回一个堆栈跟踪,该跟踪引发未找到的HTTP异常 为什么这不起作
Route::get('cats/create', function() {
$cat = new Cat;
return View::make('cats.edit')
->with('cat',$cat)
->with('method','post');
});
此路由返回一个堆栈跟踪,该跟踪引发未找到的HTTP异常
为什么这不起作用?
我输入的地址是
本地主机:8000/cats/create
这是PHP artisan路由的结果。
我认为路线需要以前斜杠开始 更改:
Route::get('cats/create', function() {
致:
最终输出:
Route::get('/cats/create', function() {
$cat = new Cat;
return View::make('cats.edit')
->with('cat',$cat)
->with('method','post');
});
您必须重新排列路由定义,以便在定义cats/{cat}路由之前定义cats/create路由。您的应用程序中有以下路由:
GET|HEAD cats/{cat}
GET|HEAD cats/create
如果您点击
http://localhost/cats/create
这将与第一条路线匹配。看起来您正在使用,因此您的应用程序试图将“create”解释为cats
模型实例的ID,这就是它失败的地方。其他路由是否有效?如果不是,可能是URL重写的问题。是的,其他路由正在工作,可能是与其他路由冲突。如果您的路由与Route::get()
声明中声明的多个模式匹配,则可能会导致意外行为。请尝试从命令行运行php artisan routes
,看看是否一切正常。php artisan routes显示了什么?我从来没有这样做过,它总是在没有第一个斜杠字符的情况下对我有效。更详细地说,路线是按照定义的顺序匹配的。
GET|HEAD cats/{cat}
GET|HEAD cats/create