从Laravel中的Module加载页眉和页脚

时间:2017-03-29 15:25:49

标签: php laravel views controllers

我在Laravel中创建了一个模块,即时通讯使用该模块的视图,我的结构如下:

模块

 -> MyModule
 ->->Controllers
 ->->Views
 ->->->MyModule.blade.php

但是我在资源上完成了页眉和页脚 - > views-> layouts-> base.blade.php

那么我怎么称呼这个所以我可以在所有模块中使用相同的基本布局? Laravel 5有可能吗?

已经尝试过这个

@include('layouts.base')

但即将到来

尝试获取非对象的属性(查看:... resources \ views \ layouts \ base.blade.php

谢谢。

2 个答案:

答案 0 :(得分:1)

刀片的结构相对于views文件夹中的resources文件夹。

这样使@include()具有类似这样的结构:

@include('DIRECTORY.BLADE')

您可以使用@yield()

添加各种刀片内容
@yield('YIELD_FIELD_NAME')

如果您尝试从该布局中获取刀片服务器范围,则可以在要扩展的刀片文件的顶部调用它。

@extends('DIRECTORY.BLADE')

这是一个示例刀片文件,如果您的布局中包含@yield('content')标记,则可以扩展您的布局。

example.blade.php

@extends('layouts.base')

@section('content')

  YOUR BLADES HTML/CONTENT

@endsection

https://laravel.com/docs/5.4/blade#defining-a-layout

如何将Auth中间件添加到控制器:

/**
 * Create a new controller instance.
 *
 * @return void
 */
public function __construct()
{
    $this->middleware('auth');
}

这是一个示例控制器: https://github.com/jeremykenedy/laravel-auth/blob/master/app/Http/Controllers/UsersManagementController.php

以下是使用该控制器的视图示例: https://github.com/jeremykenedy/laravel-auth/blob/master/resources/views/usersmanagement/show-user.blade.php

以下是视图使用的模板示例: https://github.com/jeremykenedy/laravel-auth/blob/master/resources/views/layouts/app.blade.php

以下是上述示例的路由文件: https://github.com/jeremykenedy/laravel-auth/blob/master/routes/web.php

答案 1 :(得分:0)

好的,我无法让Auth处理模块结构,只需要在你的routes.php上添加它。

Route::group(['middleware' => ['web']], function () {
  //Your routes
});