我正在使用名为WardrobeCMS(http://wardrobecms.com)的Laravel CMS,我正在尝试修改路由以使用我现有的cms路由,因此我可以移植。
WardrobeCMS使用:
/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));
}
)
);
但它没有任何影响;我环顾四周寻找类似的手术,却一无所获。不确定这只是一个语法错误,还是我完全偏离了我正在尝试做的事情
想知道过滤器之前是否还不是答案,但还没有做任何工作。
谢谢!
答案 0 :(得分: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();
}
));
但是你必须创建一个类似的路线,所以它会被发射到目标,但这只是一个意见,因为现在仍然不确定你正在尝试做什么,只是猜测。