您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 恩施分类信息网,免费分类信息发布

[ThinkPHP]关联查询问题

2024/2/22 9:22:09发布21次查看
使用thinkphp框架开发.
user模型里关联了personalapply表:
'personalapply' =>array(
            'mapping_type'=>self::has_many,
            'foreign_key'=>'uid',
            'mapping_name'=>'personalapply',
        ),
控制器里:根据前端接收的字段查询筛选(字段为personalapply表里字段)
//获取个人中心的申请信息
            $limit_year = $_get['limit_year'];
            $loanuse = $_get['loanuse'];
//申请表关联查询条件
            $user=d('user');
            $applymap['limit_year'] = $limit_year;
            $applymap['loanuse'] = $loanuse;
            $userapply=$user->relation('personalapply')->where($applymap)->select();//只能查询user表字段,不能查询personalapply表字段,
问题:想要user表跟personalapply表关联后怎么根据变量查询 personalapply里数据,得出关联后的查询数据。模型里condition只能写死!不能传变量。(我新手也看手册了,手册里没有,估计是我知道的函数不全,thinkphp不行我就使用php sql查询了,求大神指出thinkphp实现的方法,thx!!)
回复讨论(解决方案) 建议你使用视图模型来查询:写一个自定义model(如果是tp3.2版本,别忘了引入命名空间)
class userpersonalapplyviewmodel extends viewmodel{ public $viewfields = array( 'user'=>array( 'user表需要取的字段1', '字段2', '字段3' ), 'personalapply'=>array( 'personalapply表需要取得字段1', '字段2', '字段3', '_on'=>'user.主键=personalapply.uid', '_type'=>'left' ), );}



然后在控制器里实例化这个模型来取数据即可。
$userpersonal = d('userpersonalapplyviewmodel');



建议你使用视图模型来查询:写一个自定义model(如果是tp3.2版本,别忘了引入命名空间)
class userpersonalapplyviewmodel extends viewmodel{ public $viewfields = array( 'user'=>array( 'user表需要取的字段1', '字段2', '字段3' ), 'personalapply'=>array( 'personalapply表需要取得字段1', '字段2', '字段3', '_on'=>'user.主键=personalapply.uid', '_type'=>'left' ), );}



然后在控制器里实例化这个模型来取数据即可。
$userpersonal = d('userpersonalapplyviewmodel');



建议你使用视图模型来查询:写一个自定义model(如果是tp3.2版本,别忘了引入命名空间)
class userpersonalapplyviewmodel extends viewmodel{ public $viewfields = array( 'user'=>array( 'user表需要取的字段1', '字段2', '字段3' ), 'personalapply'=>array( 'personalapply表需要取得字段1', '字段2', '字段3', '_on'=>'user.主键=personalapply.uid', '_type'=>'left' ), );}



然后在控制器里实例化这个模型来取数据即可。
$userpersonal = d('userpersonalapplyviewmodel');



建议你使用视图模型来查询:写一个自定义model(如果是tp3.2版本,别忘了引入命名空间)
class userpersonalapplyviewmodel extends viewmodel{ public $viewfields = array( 'user'=>array( 'user表需要取的字段1', '字段2', '字段3' ), 'personalapply'=>array( 'personalapply表需要取得字段1', '字段2', '字段3', '_on'=>'user.主键=personalapply.uid', '_type'=>'left' ), );}



然后在控制器里实例化这个模型来取数据即可。
$userpersonal = d('userpersonalapplyviewmodel');



回复慢了,不好意思!我按你这种方法试一下!谢谢谢谢!
恩施分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录