gpt4 book ai didi

php - Laravel 5 查看 Composer 服务提供者,从通配符中排除前缀

转载 作者:可可西里 更新时间:2023-11-01 13:14:31 27 4
gpt4 key购买 nike

view composer documentation 之后我为我的基本 View 创建了一个类 ComposerServiceProvider 和一个 ViewComposer。我想为我站点的管理区域使用另一个名为 AdminComposer 的 View 编辑器。这些是我的类(class)标题:

(namespace App\Http\Composers)

class ViewComposer
class AdminComposer extends ViewComposer

这是我的 Composer 服务提供商:

<?php namespace App\Providers;

use View;
use Illuminate\Support\ServiceProvider;

class ComposerServiceProvider extends ServiceProvider {

/**
* Register bindings in the container.
*
* @return void
*/
public function boot()
{
View::composer('admin/*', 'App\Http\Composers\AdminComposer');
View::composer('*', 'App\Http\Composers\ViewComposer');
}

/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}

}

在我的 Composer 服务提供者的方法 boot() 中,我想将 ViewComposer 分配给我的所有 View ,除了前缀为“admin”的那些应该使用 AdminComposer。

然而,在当前设置中,两个 View 编辑器都被使用,因为路径“admin/*”也遵循路径“*/”。有没有一种方法可以从通配符路径中排除 admin 前缀,而不必单独声明将使用 ViewComposer 的所有路径?

最佳答案

仅将 View 编辑器附加到您的两个布局文件可能就足够了。这样,您不仅可以解决普通 View 和管理 View 之间的冲突,而且 Composer 每个请求只运行一次,而不是两次或更多次(对于 View 和布局 View 以及可能的更多 View )

View::composer('layouts.admin', 'App\Http\Composers\AdminComposer');
View::composer('layouts.master', 'App\Http\Composers\ViewComposer');

关于php - Laravel 5 查看 Composer 服务提供者,从通配符中排除前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28647137/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com