[ThinkPHP]关联查询问题

卡机不 2015-11-24 11:30:01
使用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!!)
...全文
73 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
misaka去年夏天 2015-11-24
  • 打赏
  • 举报
回复
建议你使用视图模型来查询:写一个自定义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');
卡机不 2015-11-24
  • 打赏
  • 举报
回复
引用 1 楼 misakaqunianxiatian 的回复:
建议你使用视图模型来查询:写一个自定义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');
引用 1 楼 misakaqunianxiatian 的回复:
建议你使用视图模型来查询:写一个自定义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');
引用 1 楼 misakaqunianxiatian 的回复:
建议你使用视图模型来查询:写一个自定义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');
回复慢了,不好意思!我按你这种方法试一下!谢谢谢谢!

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧