![](/img/trans.png)
[英]Converting beforeFilter (4.*) to Middleware (5.*) in Laravel
[英]Laravel 4.* to 5.*, nesting views in Controller
截止到目前,我已经将Laravel运行环境更新为最新版本。 回到Laravel 4. *,我能够执行以下操作:
$this->layout->content = View::Make('users.login');
但似乎现在失败了。 我已经阅读了很多文章,尝试了所有看起来合理的事情,但我没有发现任何适合我的情况的东西。 链接的尝试的努力可以在这篇文章的底部找到。 以下是我尝试使用的代码。
我收到的错误来自“找不到类'App \\ Http \\ Controllers \\ View'”的错误-当我在控制器中添加Use View时可以解决此错误,但这会导致另一个错误。 添加使用View时,我收到的另一个错误是“试图分配非对象的属性”。 位。
基本思想是这样的:
我有两个视图,一个是基本页面布局(layouts.main),另一个包含希望嵌入到主布局中的用户登录名(user.login)。 它们都是刀片格式文件,如果尝试这样做,它们都彼此独立加载,我根本无法将两个文件嵌套在控制器下。 我正在尝试执行此操作,以便主文件可以就是该文件,并且仅此内容部分在页面视图之间进行更改。
控制器功能:
public function getLogin() {
$this->layout->content = View::Make('users.login');
}
刀片文件部分:
<div class="content roundBorder wrapper">
@yield($content)
</div>
尝试的解决方案:使用View :: make的所有操作似乎都由于deprecation(?)而失败。 https://laravel.io/forum/03-19-2014-simply-loading-multiple-views
尝试Laravel 4:在布局内部嵌套视图,但要包含数据
return $layout->nest('content','user.login');
每次都失败。
Laravel不能很好地从控制器定义默认布局 ,因此我认为也已弃用。
如何在Blade模板中包括子视图? 将无法正常工作,因为我正在寻求即时执行此操作
当我尝试以下操作时, https://laracasts.com/discuss/channels/general-discussion/laravel-5-this-layout-content-not-working?page = 1不适用于我:
$content = view('user.login');
return view($this->layout, ['content' => $content]);
好的,您做错了几件事。
首先,如果要在布局内渲染视图,则通常使用@extends
Blade指令。 参见https://laravel.com/docs/5.4/blade#template-inheritance
在您的layouts/main.blade.php
文件中:
@yield('body')
在您的users/login.blade.php
文件中:
@extends('layouts.main')
@section('body')
<!-- your markup -->
@stop
最后,要在Laravel控制器中呈现视图,可以使用view()
帮助器函数。
public function getLogin()
{
return view('users.login');
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.