我正在尝试在配置文件中使用命名路由,并且我一直收到500错误。
<?php
return [
'Warden' => [
route('warden::models', ['user']),
'fa fa-btn fa-fw fa-user-secret text-success'
],
'Dispatch' => [
route('dispatch::index'),
'fa fa-btn fa-fw fa-fa-microphone text-success'
],
'Identicon' => [
route('identicon::main', [md5(Auth::user()->email)]),
'fa fa-btn fa-fw fa-get-pocket text-success'
]
];
我想知道Laravel中是否有某些东西阻止了这种情况的发生。如果没有,我是在做一些不正确的事情吗?
另外:旁注。
PHP Catchable fatal error:
Argument 2 passed to Illuminate\Routing\UrlGenerator::__construct() must be an instance of Illuminate\Http\Request, null given, called in
/home/austin/html/hidden/vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php on line 62
and defined in /home/austin/html/hidden/vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php on line 99
我在控制台中遇到的唯一错误是仅在我使用php artisan serve
时才会出现错误。
我不再在工作,所以我没有确切的源代码;但是,它与下面的内容类似。
(在刀片文件中),其中kregel是目录,菜单是文件名。
@foreach(config('kregel.menu') as $menu_item => list($link, $icon))
<li>
<a href="{{$link}}>
$menu_item <i class="{{$icon}}"></i>
</a>
</li>
@endforeach
答案 0 :(得分:1)
我相信我找到了我的解决方案,并认为我只是为了开源而分享。
所以不要只使用Auth facade或route方法。我改为选择使用外观的闭合和路线的字符串。
示例:
'Identicon' => [
'link' =>[
'identicon::main',
function() {
return md5(Auth::user()->email);
}
],
'icon' => 'fa fa-btn fa-fw fa-get-pocket text-success'
]
我用来制作和构建链接的实际功能。
protected function linkBuilder($link){
// This makes sure that there is indeed parameters.
if(!is_array($link)){
return route($link);
}
// This grabs the two expected parameters.
list($route, $params) = $link;
// Now we see if the parameter(s) is actually an anon function
if($params instanceof Closure) {
// call this function
return route($route, $params());
}
// This must have no function and must just be
// either an array of parameters or just a string
return route($route, $params);
}
现在要使用此功能,您最终会使用键“#”链接传递数组。这个功能。因此,最终返回的是正确的值。
这意味着生成的路径功能实际上看起来像
route('identicon::main', md5(Auth::user()->email));
虽然它可能有点凌乱,但对于我的任务来说,它的效果非常好。如果有任何其他方式,任何人都可以考虑在我的配置中使用外观或命名路线表格,请告诉我。