![](/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.