只有当用户在管理面板中时,是否可以注册服务提供商?
这需要路由器检查,例如,管理面板中是否有前缀['prefix' => 'admin']
?
一般来说,你需要这样的东西https://stackoverflow.com/questions/39844709/how-do-i-call-a-model-in-a-custom-laravel-5-3-config-file
即 . 这样您就可以从配置文件中访问模型。
在上面的文章中,他们写道,您需要在文件中创建一个密钥,app.php
'user_model' => App\Models\User::class,
然后像这样访问它: $user = config('app.user_model'); // app in file name
但它给了我一个错误:
Fatal error: Uncaught RuntimeException: A facade root has not been set. in \vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php:258
那些。我需要从管理面板中的配置文件访问模型。
config/app.php
'page_model' => App\Models\Page::class,
我使用模块adminlte
,在配置文件中config/adminlte.php
我需要找出条目的数量,'label' => config('app.page_model')->count(),
但它给出了一个错误,
即 我需要让它只在管理面板中工作,如果我在 中输入config/app.php
,那么额外的请求将在我理解的前端工作
附言
use App\Models\Car;
use Illuminate\Support\Facades\Auth;
class Admin {
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next) {
if (!Auth::guard('web')->check()) {
abort(403);
}
if (auth()->guard('web')->check()) {
config(['pages' => Car::count()]);
}else {
config(['pages' => 22]);
}
return $next($request);
}
}
配置/adminlte.php
[
'text' => 'pages',
'url' => 'admin/pages',
'icon' => 'far fa-fw fa-file',
'label' => config('pages'), //количество страниц не работает
'label_color' => 'success',
],
那些。config('pages')
如果你输入任何数字,那么菜单会显示这个数字,但是这个配置不起作用config('pages')
你能告诉我为什么会这样吗?
在控制器中,config('pages')
此变量可用并显示数字
附言
public function handle($request, Closure $next) {
if (auth()->guard('web')->check()) {
config([
'adminlte.menu' => [
[
'text' => 'cars',
'url' => 'admin/cars',
'icon' => 'fas fa-fw fa-car',
],
[
'text' => 'pages',
'url' => 'admin/pages',
'icon' => 'far fa-fw fa-file',
'label' => Car::whereStatus(1)->count(),
'label_color' => 'success',
]
1. 中间件更适合这种类型的事情,因为您可以将它应用于您想要的任何路由/路由组。
2. 选择服务提供商
view()->composer('*', function($view)
只会在实际组成视图时执行。**
$ php artisan config:cache
配置缓存见这里**