分享ThinkPHP3.2中关联查询解决思路

前端技术 2023/09/06 PHP

不废话了,直接给大家贴代码了,代码很简单,都是比较常见的sql语句,具体内容请看下文。

CREATE TABLE `test_avatar` (
 `uid` int(11) unsigned NOT NULL DEFAULT \'0\',
 `avatar` varchar(255) NOT NULL DEFAULT \'\',
 PRIMARY KEY (`uid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `test_avatar` VALUES (1,\'./Uploads/admin.jpg\');

CREATE TABLE `test_pro` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `uid` int(11) unsigned NOT NULL DEFAULT \'0\',
 `name` varchar(255) NOT NULL DEFAULT \'\',
 PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `test_pro` VALUES (1,1,\'产品1\'),(2,1,\'产品2\');
CREATE TABLE `test_user` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `username` varchar(50) NOT NULL DEFAULT \'\',
 `tel` int(11) unsigned NOT NULL DEFAULT \'0\',
 PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `test_user` VALUES (1,\'admin\',110);

如上三个表:用户头像表、产品表、用户表

怎样在模型中建立关联?

class ProModel extends RelationModel{
 protected $_link=array(
 \'Avatar\'=>array(
 \'mapping_type\'=>self::HAS_ONE,
 \'class_name\'=>\'Avatar\',
 \'foreign_key\'=>\'uid\',
 \'mapping_fields\'=>\'avatar\',
 \'as_fields\'=>\'avatar\',
 ),
  )
}

试过用HAS_ONE、BELONGS_TO、HAS_MANY、MANY_TO_MANY都不行,求大神指点

------解决思路----------------------

Model下建立ProModelModel.class.php

class ProModelModel extends ViewModel { 
 public $viewFields = array(  
 \'test_avatar\'=>array(
 \'id\',...
 ),  
 \'test_pror\'=>array(
 \'id\',...
 \'_on\'=>\'\'
 ),  
    \'test_pror\'=>array(
 \'id\',...
 \'_on\'=>\'\'
 ), 
 ); 
}

Thinkphp中SQL语句有关问题及解决办法

请问,在THINKPHP中,数据表里有个字段,字段的内容形式为 {1,2,3,4,5}

那么SQL语句里怎么将获得的ID值来跟字段里的内容来比较呢

------解决思路----------------------

用模糊查询吧

$where = array(\'该字段\'=>array(\'LIKE\', \'%\' . $ID . \'%\'));

本文地址:https://www.stayed.cn/item/16182

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。