我在views / layouts / main.blade.php中有一个主要布局 如何传递我的ListingsController.php
中的变量public function getMain() {
$uname = Auth::user()->firstname;
$this->layout->content = View::make('listings/main')->with('name', $uname);
}
然后我将它添加到listing / main
中的main.blade.php@if(!Auth::check())
<h2>Hello, {{ $name }}</h2>
@endif
它可以工作,但我无法将该变量传递给views / layouts / main.blade.php中的mmaster布局 我只需要在标题中显示用户的名字。
答案 0 :(得分:8)
它应该按照它的方式工作,但是......如果你需要将某些内容传播到多个视图,最好使用View::composer()
或View::share()
:
View::share('name', Auth::user()->firstname);
如果只在layout.main上需要它,您可以:
View::composer('layouts.main', function($view)
{
$view->with('name', Auth::check() ? Auth::user()->firstname : '');
});
如果您在所有观看中都需要它,您可以:
View::composer('*', function($view)
{
$view->with('name', Auth::check() ? Auth::user()->firstname : '');
});
您甚至可以为此目的创建文件,例如app/composers.php
,并将其加载到app/start/global.php
中:
require app_path().'/composers.php';
答案 1 :(得分:0)
$this->data['uname'] = 'some_username';
return View::make('dashboard.home', $this->data);
编辑:: 例如:
<?php
class BaseController extends Controller {
/**
* Setup the layout used by the controller.
*
* @return void
*/
protected $layout = 'layouts.front';
protected function setupLayout()
{
if ( ! is_null($this->layout))
{
$this->data['sidewide_var'] = 'This will be shown on every page';
$this->layout = View::make($this->layout, $this->data);
}
}
}
_
<?php
class BlogController extends BaseController {
public function getPost($id)
{
$this->data['title'] = 'Post title'; //this will exist on only this page, but can be used in layouts/front.blade.php (for example)
return View::make('blog.single_post', $this->data);
}
}
这是我使用控制器的方式。 $ sidewide_var和$ title都可以在布局或视图中使用
答案 2 :(得分:0)
为此使用专用课程。
首先:
// app/Providers/AppServiceProvider.php
public function boot()
{
view()->composer('layouts.master', 'App\Http\Composers\MasterComposer');
}
然后:
// app/Http/Composers/MasterComposer.php
use Illuminate\Contracts\View\View;
class MasterComposer {
public function compose(View $view)
{
$view->with('variable', 'myvariable');
}
}
请记住注册服务提供商。
更多:https://laracasts.com/series/laravel-5-fundamentals/episodes/25