thinkphp5 모델 관련 조작 연습 1 (한 쌍의 다중 관련 조회)
2656 단어 ThinkPHP
데이터 테이블 작성
CREATE TABLE `cate` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(50) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=' ';
CREATE TABLE `blog` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(50) NOT NULL DEFAULT '' COMMENT ' ',
`cate_id` int(11) NOT NULL DEFAULT '0' COMMENT ' ID',
`user_id` int(11) NOT NULL DEFAULT '0' COMMENT ' ID',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=' ';
CREATE TABLE `content` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`blog_id` int(11) NOT NULL DEFAULT '0' COMMENT ' ID',
`data` text NOT NULL COMMENT ' ',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=' ';
모델 정의
hasMany('Blog')->with('info');
}
}
hasOne('Content');
}
}
데이터 조회
public function cate()
{
$cate = collection(model('cate')->with('blog')->select())->toArray();
dump($cate);
}
데이터 조회 결과
array(1) {
[0] => array(3) {
["id"] => int(1)
["title"] => string(3) "PHP"
["blog"] => array(2) {
[0] => array(5) {
["id"] => int(1)
["title"] => string(24) " "
["cate_id"] => int(1)
["user_id"] => int(1)
["info"] => array(3) {
["id"] => int(1)
["blog_id"] => int(1)
["data"] => string(24) " "
}
}
[1] => array(5) {
["id"] => int(2)
["title"] => string(24) " "
["cate_id"] => int(1)
["user_id"] => int(1)
["info"] => array(3) {
["id"] => int(2)
["blog_id"] => int(2)
["data"] => string(24) " "
}
}
}
}
}