ThinkPHP模型小记

TP中涉及到多表查询数据时候一般来使用Model模型层。在对模型文件命名的时候本人习惯与遵循一下方案以便于在看到文件名称的时候就能够很方便的知道那些文件是表单模型、多表操作模型以及视图模型:

1,只有单表操作的时候的命名,例如:UserModel.class.php。

2,有多表关联操作的时候的命名,例如:UserRelationModel.class.php。

3,有视图模型的时候的命名,例如:UserViewModel.class.php


以下是一个Model模型层的参考文件:

<?php

namespace Admin\Model;

use Think\Model\RelationModel;

/**
 * 用户表于角色表关联模型
 */
class UserRelationModel extends RelationModel {

    //定义主表的名称,如果命名方式是UserModel则不用定义此项,系统默认取Model前面的字符为主表名称
    protected $tableName = 'user';
    protected $_link = array(
	//定义于从表的关联参数
	'role' => array(
	    'mapping_type' => self::MANY_TO_MANY, //映射类型多对多
	    'foreign_key' => 'user_id', //主表关联外键
	    'relation_foreign_key' => 'role_id', //从表关联外键
	    'relation_table' => 'hd_role_user', // 此处应显式定义中间表名称,且不能使用 C 函数读取表前缀
	    'mapping_fields' => 'id, name, remark' //需要读取的关联字段
	)
    );

}



注:ThinkPHP的field()方法小技巧:

1)例如读取数据库的字段有id, name, password, logintime,但是除了password不需要读取其他的都读取的话一般是这样写field(array('id', 'name', 'logintime'))但是这样写太长而且不够优雅,可以更改为这样:field('password', true)效果和前者一样,但是看起来美观多了。

2)在模板输出的时候经常会用到循环,如果输出多维数组的话就需要循环里面套循环。需要注意的是第二层循环的取第一层循环的item里的下表的时候不要加$符号,要不然不会输出第二层循环的值,如图所示:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值