您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
thinkphp3.2.1学习笔记-关联模型[上]
发布时间:2017-09-19 12:00:57编辑:雪饮阅读()
关联模型-一对一:
用到数据表如:
user:
card:
关联模型-一对一-HAS_ONE:
示例:显示用户列表并关联身份证
user控制器如:
<?php
// 本类由系统自动生成,仅供测试用途
namespace Home\Controller;
use Think\Controller;
use Home\UserModel;
class UserController extends Controller {
public function index(){
$user=D('User');
//可以填写关联表名
//$arr=$user->relation('Card')->select();
//也可以直接设置true然后就自动关联
$arr=$user->relation(true)->select();
echo "<pre>";
print_r($arr);
echo "</pre>";
}
}
user模型如:
<?php
namespace Home\Model;
use Think\Model;
use Think\Model\RelationModel;
class UserModel extends RelationModel{
protected $_link=array(
'Card'=>array(
//映射类型为当前模型(UserModel)有唯一对应关联
'mapping_type'=>self::HAS_ONE,
//主键关联的从表字段名
'foreign_key'=>'uid',
//设置与本模型关联的模型的类名称,不设置也有默认值,例如这里默认值为Card
// 'class_name'=>'abc',
//与本模型关联表以数组形式读取的记录与本模型其它键并列时的键名,不设置也有默认值,例如这里默认值为Card
//'mapping_name'=>'abc',
//不读取整个关联表,仅读取指定字段
// 'mapping_fields'=>'code',
//将读取的指定字段直接提取到本模型字段平级
//'as_fields'=>'code',
//如果本模型已有相同字段名,则可将待提取的字段名别名
// 'as_fields'=>'code:mycode',
//设置本模型对外关联键值条件(不常用)
// 'condition'=>'id=1',
),
);
}
?>
关联模型-一对一- BELONGS_TO:
示例:显示身份证号列表并关联用户名
建立card控制器如:
<?php
namespace Home\Controller;
use Think\Controller;
class CardController extends Controller{
public function index(){
$card=D('Card');
$arr=$card->relation(true)->select();
echo "<pre>";
print_r($arr);
echo "</pre>";
}
}
建立card模型如:
<?php
namespace Home\Model;
use Think\Model;
use Think\Model\RelationModel;
class CardModel extends RelationModel{
protected $_link=array(
'User'=>array(
'mapping_type'=>self::BELONGS_TO,
//设置本模型(从表)关联主键字段名
'foreign_key'=>'uid',
'mapping_fields'=>'name',
'as_fields'=>'name',
),
);
}
关键字词:thinkphp3.2.1,模型