Laravel web.php没有正确重定向。

时间:2018-10-09 13:13:16

标签: php laravel routes laravel-5.2

下面是我的web.php内容

Route::get('/myRoutes', function () {return view('myRoutes.routeIndex');})->middleware('auth');
Route::get('/myRoutes/{route}', 'routes@show')->middleware('auth');
Route::get('/myRoutes/create', 'routes@create');

下面是我的资源控制器(route.php)

<?php

namespace App\Http\Controllers;

use App\route;
use Illuminate\Http\Request;

class routes extends Controller
{  
public function create()
    {
        return view('myRoutes.routeCreate');
    }
    public function show(route $route)
    {
        return view('myRoutes.routeShow', compact('route'));
    }
?>

现在,如果我访问mydomain.com/myRoutes,它会为我提供可用的路由列表。(按预期运行)

如果我访问mydomain.com/myRoutes/1,它会给我ID = 1(按预期工作)的记录

现在的问题是,如果我访问mydomain.com/myRoutes/create,它将返回一个404错误,该页面未找到。如果我在web.php中注释掉以下行

Route::get('/myRoutes/{route}', 'routes@show')->middleware('auth');

然后,mydomain.com/myRoutes/create会按预期工作。我认为laravel在/ myRoutes / {id}和/ myRoutes / create之间感到困惑。该如何解决?

2 个答案:

答案 0 :(得分:1)

在您的web.php中,在演出路线之前添加创建路线。

Route::get('/myRoutes', function () {return view('myRoutes.routeIndex');})->middleware('auth');
Route::get('/myRoutes/create', 'routes@create');
Route::get('/myRoutes/{route}', 'routes@show')->middleware('auth');

答案 1 :(得分:0)

尝试将create路线放在show中的web.php路线之前