thinkphp中的视图
在mvc里面的view是指我们的模板
这个地方的视图是指我们数据库中的视图
虚拟存在的一张表,里面有行和列,同时也有具体的数据
但数据并不是写在这个表里面的.这当中的行和列信息,也不是写在这张表里
他是通过你查询出来的表当中的数据,列还有行信息

"user"=>array('id','username','password');
'user_message'=>('id'=>'uid','userid','info','on'=>'user.id=user_message.userid');
$user=new UserViewModel();
$list=$user->select();

thinkphp缓存
$cache=Cache::getInstance('缓存方式','缓存参数');
$cache=Cache::getInstance('Xcache',array('expire'=>60));
$cache->set('名字','值');
$value=$cache->get('名字');
$cache->rm('名字');
$cache->name='值';
unset($cache->mame);
S('名字','数据','3600','类型')
如果有缓存则读取缓存数据,如果没有缓存则读取数据库的数据放入缓存
'DATA_CACHE_TYPE'=>'file'
'DATA_CACHE_TIME'=>'3600'

$value=S('list');
if(isset($value)){
 $list=$user->select();
S('list',$list);
}
DATA_CACHE_SUBDIR=true
DATA_PATH_LEVEL=3;
S方法支持缓存有效期,在很多情况下,不需要有效期
专门进行文件缓存,快速缓存
F('data',$data,TEMP_PATH);
F('data',null);
$data=F('data');
F('user/data',$data)

关联模型操作
删除用户的时候,同时删除与用户有关的所有信息

一对一  有has.one 属于belongs.to

一对多  有has.many 属于belongs.to


多对多 many to many
class UserModel extends RelationModel{
 protected $_link=array(
  'good'=>array(
     'mapping_type'=>has_one,
     'class_name'=>'good',
     'mapping_name'=>'good',
     //'condition'
     //foreign_key
     //mapping_fields=>array()需要关联的字段
     as_fields=>'title'
     //mapping_limit
    //mapping_order
    //parent_key自引用的关联的关联字段
   ),
);
}

$list=$user->relation()->select();

$data['username']=>'bbbbbbb';
$data['password']=>'bbbbbb';
$data['good']=array(
 array('title'=>'aaaa'),
 array('title'=>'bbbbb'),
);

$list=$user->relation(true)->add($data);

$list=$user->relation(true)->save($data);

$list=$user->relation(true)->delete('1');

belongs to  Good模型
class GoodModel extends RelationModel{
  protected $_link=array(
   'user'=>array(

   'mapping_type'=>BElongs_to,
   'foreign_key'=>'uid',
),
);
}

thinkphp的RBAC,基于角色的权限控制
RBAC中文全称,基于角色权限访问控制
Role-based Access Control
full扩展包
安全拦截器
认证管理器  识别不同的身份,你的用户名,密码,权限是否在授权范围内
决策访问管理器 即时模式,登陆模式
运行身份管理 单身份,多身份管理B/S
1.判断当前的操作(项目[应用],模块,动作(操作))是否需要认证
2.如果需要认证(判断用户是否登陆,判断用户是否有权限访问,)
3.委托认证来检验权限列表
4.获得该用户权限列表
5.判断用户是否有权限访问

难点在于,数据库设计,不是在代码如何写。
access加Pid
user表
节点(项目,模块,方法)之间的关系
access是控制各组是否能够访问某个模块,某个方法
在access表当中有的节点,有的用户组才能访问,在access表当中没有就不能访问
class CommonAction extends Action{
  function _init
}

模板
thinkphp的模板引擎是内置的thinktemplate,它的风格是xml风格的模板引擎
在thinkphp加载模板之后,并且你的代码和模板整合之后,你可以设置缓存
输出方法并执行返回值
:function() :U('user/insert')
~function()
$think.get.id
$think.server.server中的变量
$think.env.env中的变量
{$think.__SELF__}
{$think.comfig.db_user}
{@var}输出session中的变量
{#var}输出cookie中的变量
{&var}输出配置文件中的变量
{%var}输出语言变量
公共的头信息
<include file='完整模板文件名'/>

导入js
<import type="js" file="Js.Util.A">

<volist name="list" id="vo" offset="5" length="2">
{$volist}
</volist>

<foreach name="list" item="vo">

</foreach>

<switch>
  <case value="1">aaa</case>
  <case value="2">bbb</case>
</switch>

<in name="a" value="1,2,3">aaa</in>

<present name="a">已赋值</present>

<empty name="a">
这是一个空变量
<else/>
</empty>

<defined name="MODEL_NAME">这个常量被定义</definde>

<if condition="$vo['id'] eq 5">
  </else>
</if>

<volist name="list" id="vo">
    <if condition="$vo['id']=1">

    </if>
</volist>

<literal>
  <if condition>

  </if>
</literal>

<tagLib name="cx.html">
<select>

</select>

<tagLib>

<html :select name="id" option="list">

</html>

A方法
.shtml
url路由