ThinkPHP3.2.3相关笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkPHP3.2.3相关笔记相关的知识,希望对你有一定的参考价值。

Page.class.php中首先定义命名空间:namespace Component;
然后在相应控制器中实例化:$page = new \Component\Page();//引入自定义
类文件Page.class.php
$my= new \Component\My();
$info = $my->unlimitedForLevel($info);

 

R("Goods/getmoney");//跨控制器调用


R("Home/Index/getname");//跨分组调用

R("book://Home/Index/getother");//跨项目调用

/**
* <a href="{:U(‘Admin/Login/index‘)}"/> U函数用法
*/

define ("ADMIN_CSS_URL",SITE_URL."Admin/public/css/");常量名必须为大
写,不能写成define ("Admin_CSS_URL",SITE_URL."Admin/public/css/")

添加数据:
使用add()
$goods->add();
返回最后一条数据主键ID
///////////////////////////////////////////////////////////
<foreach name="rinfo" item="v" key="k">
<option <eq name="auth_info.auth_pid" value="$k"> selected
="selected" </eq> value=‘{$k}‘>{$v}</option>
<option value=‘{$k}‘>{$v}</option><!-- 此处循环的是一维
数组 -->
</foreach>
//////////////////////////////////////////////////////////
$manager = D(‘Manager‘);//实例化think_manager数据表对象
$manager->create();//创建数据对象
$manager->mg_time=time();// 增加新的字段数据
$z = $manager->add();
///////////////////////////////////////////////////////////
收集表单数据并添加
function add(){
//利用数组方式添加数据
$goods=D(‘goods‘);


if(!empty($_POST)){
//print_r($_POST);
$goods->create();//收集表单信息
$z = $goods->add();
if($z){
//展示提示页面,并跳转
$this->success(‘添加商品成功‘,U(‘Goods/showlist‘));
}else{
$this-error(‘添加商品失败‘,U(‘Goods/add‘));
}
}else{
$this->display();
}

}

修改数据:save(); 返回受影响的记录条数
$goods =M(‘goods‘);
$arr = array(
‘goods_id‘=>‘100‘,
‘goods_name‘ => ‘lenovo‘,
‘goods_price‘=> ‘1000‘
);

$goods->where(‘goods_id >30‘)->save($arr);

删除数据 :delete();
$goods->delete(30);删除主键值为30的数据
$goods->delete(‘28,29,30’);删除主键值为28,29,30的数据
$goods->where(‘id>30‘)->delete();
公司里不会真的删除,逻辑删除,将某字段设为1,表示被删除了

执行原生sql语句
查询 $goods->query($sql);
添加、修改、删除 $goods->execute($sql);

<foreach name ="info" item ="vo"></foreach>

U函数传入变量参数:<a href="{:U(‘Admin/Goods/upd‘)}?goods_id=
{$vo.goods_id}">修改</a>

function verify(){ //生成验证码//生成验证码
ob_clean();//ob_clean这个函数的作用:
//用来丢弃输出缓冲区中的内容,如果你的网站有许多生成的图片类文件,那
么想要访问正确,就要经常清除缓冲区
$config = array(
‘fontSize‘ => 16, // 验证码字体大小
‘imageH‘ =>30,
‘imageW‘ =>100,
‘length‘ => 4, // 验证码位数
‘useNoise‘ => false, // 关闭验证码杂点
);
$Verify = new \Think\Verify($config);
$Verify->entry();//生成验证码
//$this->display();

}
$verify->check();

模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母
大写,然后加上模型类的后缀定义Model 详细讲解:
http://blog.csdn.net/jar_java/article/details/9245543

模板中调用session中的信息 {$Think.session.mg_username}
/////////////////////////////////////////////////////////////////////
/
<foreach name="info" item="v">
<tr id="product1">
<td>{$v.mg_id}</td>
<td><a href="#">{$v.mg_name}</a></td>

<td>{$rinfo[$v[‘mg_role_id‘]]}</td> //标签中
嵌套数组中的字段信息

<td><a href=‘__CONTROLLER__/upd/mg_id/
{$v.mg_id}‘>修改</a></td>
</tr>
</foreach>

、、、、、、、、、、、、、、、、、、、、、、、、、
__SELF__ 当前页面
__MODULE__ 当前模块名
__CONTROLLER__ 当前控制器名
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
模板中引入文件:<include file= "./HOME/public/head.html" /> 最好采用
绝对路径方式引入
比较标签用法 eq
<eq name="vv.auth_pid" value="$v.auth_id">
‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘
‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘
$n_auth_info=$auth->where(‘auth_id=‘.$auth->auth_pid)->find();
$auth_info=$auth->where(‘auth_id=‘.$auth_id)-
>find();//此处需要重新创建数据对象,
//否则默认修改 $n_auth_info=$auth->where
(‘auth_id=‘.$auth->auth_pid)->find();这条语句创建的对象,导致更新的是
父级权限的信息
/////////////////////////////////////////////
模板中显示序号:控制器中: $this -> assign(‘xuhao‘, ‘1‘); 模板中:
<td>{$xuhao++}</td>
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
调用公共头部或脚部文件:
在/Application/Home 目录下创建目录 - Widget


\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\\\\
利用多层控制器可实现网站标题、地址、电话等基本信息的显示
http://www.thinkphp.cn/topic/1826.html
在Controller的同级目录建立Widget文件夹,里面新建如
HeadWidget.class.php的文件,里面代码为:
namespace HOME\Widget;
use Think\Controller;
class HeadWidget extends Controller{
public function head($data){
$info=M(‘newsbase‘);
$info = $info->field(‘title‘)->select();
$name="我是张迪:".$data;
return $name;
}
}
模板页面中使用:{:R(‘Head/head‘,array(‘电脑‘),‘Widget‘)}
输出结果:我是张迪:电脑
=============================================
数组情况:
HeadWidget.class.php的文件,里面代码为:
namespace HOME\Widget;
use Think\Controller;
class HeadWidget extends Controller{
public function head($data){
$info=M(‘newsbase‘);
$info=array(‘新闻列表‘,‘关于我们‘,‘企业风采‘);

$this->assign(‘info‘,$info);
$this->display(‘Head:head‘);//此路径为
Home/View/Head/head.html(挂件模板,并不是网页头部模板)
}
}
、、、、、、、、、、、、、、、、、、、
Home/View/Head/head.html中的代码为:
<ul style="list-style: none;">
<foreach name="info" item="title">
<li>{$title}</li>
</foreach>
</ul>
、、、、、、、、、、、、、、、、、、
网页公共头部模板文件/Application/public/Home/head.html中的代码:{:R
(‘Head/head‘,‘‘,‘Widget‘)}
页面效果为:
新闻列表
关于我们
企业风采
加入收藏

以上是关于ThinkPHP3.2.3相关笔记的主要内容,如果未能解决你的问题,请参考以下文章

ThinkPHP3.2.3学习笔记1---控制器

ThinkPHP3.2.3 find注入

thinkphp3.1.3升级thinkphp3.2.3问题

ThinkPHP3.2.3 where注入

thinkphp3.2.3支不支持PHP7

ThinkPHP3.2.3 Nginx 下 URL_MODEL 的配置