在我的观看中,我正在扩展default
刀片模板,该模板充当我的主模板。我有一个ViewComposer设置,它为这个模板提供了许多变量。
我遇到的情况是我需要在index.blade.php
中访问其中一个变量,这是启动@extends
功能的页面。
通过ViewComposer传递的变量是否达到了初始视图的范围?或者我需要创建另一个ViewComposer来传递相同的变量。
<?php
namespace App\Http\ViewComposers;
use Illuminate\View\View;
use Illuminate\Http\Request;
use App\Repositories\UserRepository;
use Sentinel;
use App\ProjectUsers;
class MasterComposer
{
/**
* The user repository implementation.
*
* @var UserRepository
*/
protected $users;
private $request;
/**
* Create a new profile composer.
*
* @param UserRepository $users
* @return void
*/
public function __construct(Request $request)
{
$this->request = $request;
// Dependencies automatically resolved by service container...
$uid = Sentinel::getUser()->id;
$this->users = ProjectUsers::where("user_id", '=', $uid)->get();
}
/**
* Bind data to the view.
*
* @param View $view
* @return void
*/
public function compose(View $view)
{
$view->with('projects', $this->users);
$view->with('activeProject', $this->request->session()->get("activeProject"));
}
}
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class ComposerServiceProvider extends ServiceProvider {
/**
* Register bindings in the container.
*
* @return void
*/
public function boot() {
// Using class based composers...
view ()->composer ( 'admin/layouts/default', 'App\Http\ViewComposers\MasterComposer' );
}
/**
* Register the service provider.
*
* @return void
*/
public function register() {
//
}
}
@extends('admin/layouts/default')
{{ $activeProject }}
这最终给了我一个未定义的变量错误。
Undefined variable: activeProject (View: /home/laravel/public_html/base/resources/views/admin/index.blade.php)
答案 0 :(得分:0)
是的,主布局中可用的所有变量都将传递给它的任何子项。
答案 1 :(得分:0)
由于您在内容布局中使用@extends,因此可以使用此
POSIXct
如果这不起作用,则可能需要将其通过控制器