1

我正在使用一个名为 WardrobeCMS ( http://wardrobecms.com ) 的 Laravel CMS,并正在尝试修改路由以使用我现有的 cms 路由,这样我就可以移植过来。

衣柜CMS使用:

/post/{slug}

我想保留我现有的:

/{year}/{month}/{slug}

如果我可以将我的 3 部分 slug 组合成一个 {slug},我可以避免覆盖很多核心功能,所以这确实是我认为的最佳方向

我在尝试:

Route::get('{year}/{month}/{slug}', array(
     'uses' => $wardrobeControllers.'PostController@show',
     'as' => 'wardrobe.posts.show',
     function($year, $month, $slug)
     {
        return $slug = implode('/', array($year, $month, $slug));
     }
   )    
); 

但它没有影响;我四处寻找类似的操作,但一无所获。不确定这是否只是语法错误,或者我正在尝试做的事情完全偏离轨道

想知道也许之前的过滤器不是答案,但还没有做任何事情。

谢谢!

4

1 回答 1

0

我认为你可以做这样的事情,只需用你准备好的创建另一个params请求

Route::get('{year}/{month}/{slug}', array(
    'uses' => $wardrobeControllers.'PostController@show',
    'as' => 'wardrobe.posts.show',
    function($year, $month, $slug) {
       // build the params
       $args =  = implode('/', array($year, $month, $slug));

       // create a new request and dispatch it
       $request = Request::create('your-route', 'GET', $args);
       return Route::dispatch($request)->getContent();
    }
));

但是你也必须创建一个类似的路线,所以它会被发射到目标,但这只是一个意见,因为现在仍然不确定你到底想做什么,只是猜测。

于 2013-09-28T07:44:55.430 回答