Laravel - 将两个变量传递给控制器​​会使另一个页面中断

时间:2016-06-25 14:56:27

标签: php laravel

我遇到了一个让我很困惑的问题。我一直试图修复它,但是它的工作方式,我不想要。

所以,我将两个变量传递给我的ThreadController; '类别'和' threadTitle'通过以下方式:

Route::get('/{category}/{threadTitle}', 'ThreadController@viewThread');

仅出于测试目的,我将传递的变量输出到网页。

{{ $category.$threadTitle }}

一切正常,它们会被输出。不幸的是,这也打破了我的新线程页面,其路由如下:

Route::group(['prefix' => 'thread'], function() {
    Route::get('/new', function() {
        return view('thread/new');
    });

    Route::get('/new', 'CategoryController@listCategoriesOnAddThread');
    Route::post('/new', 'CategoryController@addThread');
});

在新的线程页面上,输出的是路由而不是表单。所以,' threadnew'显示。

我确实修改了将类别路线更改为:

Route::get('/category/{category}/{threadTitle}', 'ThreadController@viewThread');

工作正常,没有任何损失。但是,我不想这样使用,我只想拥有{category} / {threadTitle}

我现在真的被困住了,不胜感激任何帮助。

1 个答案:

答案 0 :(得分:3)

问题在于您在特定路径之前放置了一条通用路线,它会捕获具有两个分段的每个网址。只需放置

即可
Route::get('/{category}/{threadTitle}', 'ThreadController@viewThread');

低于特定路线,一切都应该正常。

相关问题