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.mzph.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;…