【发布时间】:2018-01-08 03:52:15
【问题描述】:
我目前正在开发一个多站点应用程序(一个代码库用于多个(子)站点),我很想利用路由缓存,但目前我正在硬编码前缀而不是动态确定它。
在尝试执行此操作时,我遇到了如下所示的问题:
Route::group(['prefix' => '{subsite}', 'subdomain' => '{site}.domain.tld'], function () {
Route::get('blog', 'BlogController@index')->name('blog.index');
});
当访问像http://sitename.domain.tld/subsitename/blog 这样的子站点时,这一切正常,但是当不访问像http://sitename.domain.tld/blog 这样的子站点时,它不再工作了,因为它现在会认为前缀是“博客”。
有什么办法可以让“子站点”参数为空或跳过?
谢谢!
【问题讨论】:
-
Laravel 确实有可选参数,但这些只能用作列表中的最后一个参数,我认为你最好的选择是将所有需要可选子站点的路由包装在一个函数中并创建 2路由组,一个有子站点,一个没有
标签: php laravel laravel-5 parameters routing