tp框架中引入php文件,Laravel框架及ThinkPHP框架超級簡單的公共文件引入(保留變量)...

為什么要把兩個框架放在一起來說呢?額。。。因為TP5.1.x與Laravel實在是太像了,本文主要講述關于大家頂部及底部文件引入的問題。

但是如果頂部和尾部只是單純的html代碼還好說,但是里面通常有變量賦值和循環遍歷以及判斷等邏輯,這樣就帶來了比較麻煩的事情。

首先講下Laravel框架主要利用AppServiceProvider文件中的boot方法進行全局變量分配。

也就說在boot方法直接加載header模版文件順便分配變量到模版中,

那么無論在其他視圖那個地方引入這個公共模版文件都可以直接使用,而不會報變量未找到的錯誤。

具體操作:

找到app/Providers/AppServiceProvider.php文件,在boot方法中加載公共頭部模版,比如說:namespace?App\Providers;

use?Illuminate\Support\ServiceProvider;

use?DB;

class?AppServiceProvider?extends?ServiceProvider

{

/**

*?Bootstrap?any?application?services.

*

*?@return?void

*/

public?function?boot()

{

//

$res?=?DB::table("eq_type")->where("ishidden",?"=",?"1")->get();?//取出分類列表

view()->share(['header'?=>?$res]);?//分配變量到頭部公共導航

}

/**

*?Register?any?application?services.

*

*?@return?void

*/

public?function?register()

{

//

}

}

后面就直接在其他視圖成引入頭部導航文件即可@include("template/default/header")

OK,那么ThinkPHP能用這種方式嗎?NO!雖然他們很像,但是也不是真的一模一樣好吧,TP框架除了5.1新出的layout可以嘗試達到類似效果,還有一個延續3.2版本下來的好東西,

也是接下來要講的分層控制器,利用分層控制器機制來實現widget,也就是在模版中調用分層控制器,常規的路由是無法訪問到的,相比了解Yii框架的朋友都熟悉這個吧,就是掛件功能的概念。

首先,我們需要在模塊目錄下新建一個widget目錄(與controller目錄同級目錄),然后在里面新建控制器header(表示這是頭部的文件),然后在index方法下寫如下代碼:

重點1:不能使用助手函數view直接渲染模版,否則掛件失敗!

重點2:$this->fetch(); 千萬不要以為里面不寫模版路徑,系統會自動幫你默認,那是不可能的!必須寫對應的視圖路徑!<?php

namespace?app\Admin\widget;

use?think\Controller;

class?header?extends?Controller

{

public?function?index()

{

$this->assign('title','添加賬戶');?//分配變量

return?$this->fetch('admin/header');?//渲染模版

}

}

在其他視圖層使用:{:widget('header/index')}

其中header是widget目錄下的控制器,index是控制器下的方法!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/533027.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533027.shtml
英文地址,請注明出處:http://en.pswp.cn/news/533027.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

pHp30充電寶能用快充嗎,65W快充 30分鐘充滿電 是時候淘汰充電寶了嗎?

在過去的一年里&#xff0c;手機快充技術有了新的突破&#xff0c;OPPO推出了65W快充。無獨有偶&#xff0c;聯想拯救者電競手機的預熱宣傳中&#xff0c;號稱搭載90W快充。有評測稱&#xff0c;使用65W快充&#xff0c;30分鐘可以充滿一塊4000mAh容量的電池&#xff0c;使用90…

php+mockjs,mockjs的常用方法分享

本文主要和大家分享mockjs的常用方法&#xff0c;結合文字和代碼和大家講解&#xff0c;希望能幫助到大家。一.mock.mock()根據數據模板生成模擬數據。更關鍵的是&#xff0c;我們發起Ajax請求的時候要能夠接收到這些數據。這就是Mock.mock()的作用啦&#xff01;Mock.mock( ru…

php 截取音頻文件后綴名,使用PHP從音頻流中提取音軌信息

這是一個PHP功能&#xff0c;讓您從流媒體URL中提取MP3元數據(StreamTitle)。通常&#xff0c;流服務器icy-metaint在響應中放置一個標題&#xff0c;告訴我們在流中發送元數據的頻率。該函數檢查該響應頭&#xff0c;如果存在&#xff0c;它將用它替換interval參數。否則&…

matlab畫圓柱,Matlab 畫三維圓柱體

主要學習了畫空間圓柱體和空間長方形的繪制方法。有兩個surface property&#xff1a;FaceColor和EdgeColor’;先講FaceColor’&#xff0c;它指定了surface畫出曲面的顏色&#xff0c;可以是[r,g,b]的一個向量&#xff0c;分別表示了紅綠藍的顏色配比&#xff1b;也可以是inte…

matlab類間散度矩陣,協方差矩陣和散布矩陣(散度矩陣)的意義

在機器學習模式識別相關算法中&#xff0c;經常需要求樣本的協方差矩陣C和散布矩陣S。如在PCA主成分分析中&#xff0c;就需要計算樣本的散度矩陣&#xff0c;而有的教材資料是計算協方差矩陣。實質上協方差矩陣和散度矩陣的意義就是一樣的&#xff0c;散布矩陣(散度矩陣)前乘以…

把樹分成森林 matlab,20170106RF_Matlab 隨機森林指的是利用多棵樹對樣本進行訓練并預測的一種分類器,包括兩個方面:數據的隨 269萬源代碼下載- www.pudn.com...

文件名稱: 20170106RF_Matlab下載 收藏√ [5 4 3 2 1 ]開發工具: matlab文件大小: 441 KB上傳時間: 2017-01-06下載次數: 0提 供 者: yanxiu詳細說明&#xff1a;隨機森林指的是利用多棵樹對樣本進行訓練并預測的一種分類器&#xff0c;包括兩個方面&#xff1a;數據的隨…

inur new.php id,Cmsez(隨易)全站系統 0day

程序名稱&#xff1a;Cmsez Web Content Manage System v2.0.0文件&#xff1a;comments.php viewimg.php代碼&#xff1a;---------------//commentsinclude "mainfile.php";$artnew article();//設定$confirmyes;//yes:需要管理員認證后才能顯示,no:直接顯示$membe…

PHP紅黑源碼,紅黑樹的實現源碼(第二次修訂版)

/*-----------------------------------------------------------RB-Tree的插入和刪除操作的實現算法參考資料:1) <>2) http://lxr.linux.no/linux/lib/rbtree.c作者&#xff1a;http://www.cppblog.com/converse/您可以自由的傳播&#xff0c;修改這份代碼&#xff0c;轉…

python 自動點擊上傳以后上傳文件,python使用selenium模擬點擊網頁實現自動導入上傳文件功能...

一、環境準備Python版本&#xff1a;3.4編輯器&#xff1a;Pycharmexcel文件&#xff1a;導入的excel模板二、python代碼由于工作需要&#xff0c;需要每天定時導入相關excel文件進入后臺數據庫&#xff0c;由于導入的邏輯比較復雜&#xff0c;所以決定通過python模擬登陸導入網…

php繪制頻譜圖,一步一步教你實現iOS音頻頻譜動畫(二)

本文是系列文章中的第二篇&#xff0c;上篇講述了音頻播放和頻譜數據計算&#xff0c;本篇講述數據處理和動畫的繪制。前言在上篇文章中我們已經拿到了頻譜數據&#xff0c;也知道了數組每個元素表示的是振幅&#xff0c;那這些數組元素之間有什么關系呢&#xff1f;根據FFT的原…

php刪除尾部字符,php如何刪除字符串末尾字符

我們知道字符串刪除字符的方式有好幾種&#xff0c;今天就來介紹三種php刪除字符串最后一個字符的函數&#xff0c;有需要的小伙伴可以參考一下。方法一&#xff1a;substr()函數substr()函數返回字符串的一部分。語法如下&#xff1a;substr(string string, int start, int [l…

empinfo Oracle數據庫,Oracle數據庫---包

--根據員工號或員工姓名獲取員工的信息--根據員工號或員工姓名刪除員工的信息--創建包規范CREATE OR REPLACE PACKAGE overload_pkgISFUNCTION get_info(eno NUMBER) RETURN emp%ROWTYPE;FUNCTION get_info(name VARCHAR2) RETURN emp%ROWTYPE;PROCEDURE del_emp(eno NUMBER);P…

oracle查看context,oracle context(上下文)

context在計算機領域翻譯為上下文context的信息也就是當前會話中的環境變量&#xff0c;如&#xff1a;登錄的session_id&#xff0c;用戶名&#xff0c;語言等信息查看context中的屬性信息。oracle默認的為我們創建了一個context叫userenv(user environment)SYS_CONTEXT(USERE…

oracle標量子查詢的優勢,標量子查詢

--標量子查詢select e.empno, e.ename, e.sal, e.deptno,(select d.dname from dept d where e.deptno d.deptno)as dnamefrom emp e--插入一條數據insert into emp(empno,deptno) values(9999,null)--返回結果15條記錄--改成left join(hash outer)select e.empno, e.ename, e…

切割照片php上傳,php下ajax的文件切割上傳

var myForm document.getElementById("myForm");var upfile document.getElementById("upfile");myForm.onsubmit function() {//獲取文件對象var file upfile.files[0];//獲取文件大小var fileSize file.size;//一次截取的大小(字節)var CutSize 10…

oracle插補缺失日期,Oracle連接 ORA-28001: 口令已經失效解決方法

cmd進入命令行C:UsersAdministrator>sqlplus / as sysdbaSQL*Plus: Release 11.2.0.1.0 Production on 星期四 9月 24 15:19:21 2020Copyright (c) 1982, 2010, Oracle. All rights reserved.連接到:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Pr…

PHP 蒙太奇馬賽克拼圖,AndreaMosaic制作一幅馬賽克拼圖

大家在網上應該都見過用很多幅圖片拼成的馬賽克圖片&#xff0c;今天小編就為大家介紹AndreaMosaic制作一幅馬賽克拼圖方法&#xff0c;不會的朋友快快來學習吧&#xff01;軟件名稱&#xff1a;AndreaMosaic(蒙太奇圖片制作軟件) V6.1.0.4 中文安裝免費版軟件大小&#xff1a;…

php mongo 查詢count,[PHP] 使用PHP在mongodb中進行count查詢

原文&#xff1a;https://www.cnblogs.com/taoshihan/p/12362111.html在php7的mongodb擴展中&#xff0c;當要查詢某個集合在某個條件下的數據個數時&#xff0c;可以使用下面的方式來獲取。比原生的命令要復雜許多比舊版mongo擴展也復雜許多需要使用到MongoDB\Driver\Command …

oracle字段類型設計,Oracle字段類型設計與實際業務不符引發的問題

在Oracle表的設計過程中&#xff0c;開發人員總是對字段的類型不以為然&#xff0c;下面來演示一個例子&#xff0c;按照應該設計為number的&#xff0c;結果設計成了varcha在Oracle表的設計過程中&#xff0c;開發人員總是對字段的類型不以為然&#xff0c;下面來演示一個例子…

linux下進程監控6,Linux進程監控技術—精通軟件性能測試與LoadRunner最佳實戰(6)...

8.2.5 Linux操作系統進程監控技術Linux在進程監控方面同樣出色&#xff0c;不僅可以通過圖形用戶界面的管理工具&#xff0c;還可以用命令方式顯示進程相關信息。像“Windows的任務管理器”一樣&#xff0c;在RedHat 9中可以通過單擊“系統工具”→“系統監視器”&#xff0c;…