[英]Can I have a Laravel 4.2 blade include with it's own controller?
我正在使用的網站的每個頁面上都有一個側邊欄包含文件。
layout.blade:
<div class="after-login buying-process-wrapper">
<!--page content-->
{{ $content }}
<!-- end of page content-->
<!-- Sidebar -->
@include('layout.sidebar')
<!-- End of Sidebar -->
</div>
我的控制器設置$ layout並呈現上面的刀片文件,但是layout.sidebar
是包含文件,需要PHP填充其內容。
是否可以僅為此邊欄設置控制器/路由(我將如何做?),還是我不得不對處理每個控制器中邊欄內容的函數重復相同的調用?
我試圖找到一個更好的解決方案,而不是每次加載每個頁面時都要進入每個控制器並調用-> sidebar()。
謝謝
為什么仍然使用Laravel 4.2? 現在不是5.7,我強烈建議您升級到最新版本。
回答您的問題:
不,您不需要在每個控制器中調用用於處理側邊欄內容的函數。 您可以使用View Composer
在所有或某些視圖中共享通用數據。 從Laravel
4.2文檔中 :
視圖編寫器是在呈現視圖時調用的回調或類方法。 如果您每次在整個應用程序中呈現該視圖時都希望將其綁定到給定視圖,則視圖編輯器可以將該代碼組織到一個位置。 因此,視圖編輯器的功能可能類似於“視圖模型”或“演示者”。
如果您使用的是Laravel
較新版本,請記住從右上角切換到正確的文檔。
另外,在使用Blade
@include
指令時,可以選擇將變量傳遞到“ included”組件中:
@include('layout.sidebar', ['my_var' => 'value goes here'])
您可以像在刀片服務器模板中一樣正常使用{{ $my_var }}
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.