У меня есть часть сайта, которая начинается с определенного префикса /manage
.
Можно ли как-то с помощью AppServiceProvider
view-composers ввести переменную во все маршруты из этого префикса?
Я попытался сделать это, передав эту переменную в макет всех этих маршрутов. Но потом я столкнулся с проблемой. Я использую эту переменную в режиме просмотра конкретной страницы, и она возвращает мне variable not defined
.
Затем я проверяю отладчик laravel и вижу порядок загрузки файлов блейдов. И это было :
1. Current page view
2. Layout view
3. Sidebars and other stuff
Итак, тот факт, что текущая страница загружается до макета, вызывает ошибку undefined variable
.
Так, как я могу решить это? Благодаря.
Код от моего поставщика услуг:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use App\CT;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
view()->composer(['website.implicare.ct.show', 'website.implicare.ct.petition.index', 'layouts.ct'], function($view) {
$ct = request()->ct;
$permissions = [];
foreach($ct->userPermissions(auth()->id()) as $userPermission) {
if($userPermission->pivot->ct_id == $ct->id) {
array_push($permissions, $userPermission->name);
}
}
$view->with('permissions', $permissions);
});
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}