Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉威尔没有';我无法识别有效的路线_Php_Mysql_Laravel - Fatal编程技术网

Php 拉威尔没有';我无法识别有效的路线

Php 拉威尔没有';我无法识别有效的路线,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异常 为什么这不起作

我正在使用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异常

为什么这不起作用? 我输入的地址是

本地主机: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