关联查询在写程序的时候,经常能使用到。
下面是一个非常优质的ThinkPHP3.2中关联查询代码,给了大家一个很好的思路。
收藏下来,以后写程序的时候,可能会用到。
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);
如上三个表:用户头像表、产品表、用户表
怎样在模型中建立关联?
1
2
3
4
5
6
7
8
9
10
11
|
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
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值来跟字段里的内容来比较呢
------解决思路----------------------
用模糊查询吧很优质的代码,相信很多php程序员都可能会用到。