我的web.php
看起来像
Route::group(
[
'domain' => '{tenant}.' . config('app.url'),
],
function () {
$this->get('/', 'HomeController@index')->name('home');
}
);
我的HomeController
看起来像
/**
* Show the application dashboard.
*
* @param $tenant
* @return \Illuminate\Http\Response
*/
public function index($tenant)
{
return view('home', compact('tenant'));
}
在app.blade.php
文件中看起来像
<a href="{{ route('home', ['tenant', $tenant]) }}">home</a>
使用子域路由我们每次使用{tenant}
时都会传递通配符route()
值,否则会弹出此错误
(3/3) ErrorException
Missing required parameters for [Route: home] [URI: home].
这在controller
以及blade
文件中都是冗余的。是否有任何解决方案可以默认绑定{wildcard}
?
答案 0 :(得分:1)
创建一个使用现有route()
函数的新函数。
示例:
function mdroute ($routeName, $routeData = [])
{
$tenant = request()->tenant;
$routeData['tenant'] => $tenant;
return route($routeName, $routeData);
}