return view(); 载入视图
{include file='public/head'} 包含文件
{:url('admin/add')} 视图中跳转链接
input('post.'); 获取post来的全部数据
request()->isPost() 判断数据是不是post过来的
if(request()->isPost()){
$data=input('post.');
$res=db('admin')->insert($data);
if($res){
$this->success('添加管理员成功!',url('lst'));
}else{
$this->error("添加管理员失败!");
}
}
$res=db('admin')->field('name')->select(); select是查询所有数组,find()是查询一条记录
$res=db('admin')->where(array('id'=>1))->find();
实例化表 1 助手函数 db('admin') 2 Db()类操作 先引入 use think\Db; 再实例化 $admin=Db::name('admin')
栏目无限极分类
class Cate extends Model
{
function catetree()
{
$cateres=$this->select();
return $this->sort($cateres);
}
function sort($data,$pid=0,$level=0)
{
static $arr=array();
foreach($data as $v){
if($v['pid']==$pid){
$v['level']=$level;
$arr[]=$v;
$this->sort($data,$v['id'],$level+1);
}
}
return $arr;
}
}
//调用该方法
$admin->catetree();
echo str_repeat(' |--',$cate['level']);
在模板中进行条件判断 {if condition='$cate.type eq 1'} 单页 {else} 列表 {/if}
前置操作
class Index extends Controller
{
protected $beforeActionList = [
'first',
'second' => ['except'=>'hello'],
'three' => ['only'=>'hello,data'],
];
……
…………
}
a、执行本类的所有方法前都会先执行first方法
b、除了hello方法,执行本类的其他方法前都会先执行first方法
c、只有执行hello和data方法前才会执行three方法
{:url('del',array('id'=>$admin['id']))} 带参数的url跳转,注意参数值不能用点模式
给模板分配数据
$this->assign('data',$data)
以数组形式给模板分配多条数据
$this->assign(array(
'cates'=>$cates,
'cateres'=>$cateres
));
{$artres->render()}
{if condition="$art.author eq ''"} 未填写
{else}
{$art.author}
{/if}
排序
if(request()->isPost()){
$sorts=input('post.');
foreach ($sorts as $k => $v) {
$link->update(['id'=>$k,'sort'=>$v]);
}
$this->success('更新排序成功!',url('lst'));
return;
}
控制器驼峰法命名,比如AuthGroup,在浏览器上访问时要输入auth_group
//实例化编辑器
//建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例
UE.getEditor('content',{initialFrameWidth:800,initialFrameHeight:400,});//'content'为要引入百度编辑器的文本域的id
验证码
视图html文件添加:
οnclick="this.src='{:captcha_src()}?'+Math.random();" />
在模板中调用session值
{$Request.session.name}