CakePHP-显示由成员编写的所有内容
寻找如何显示用户的所有内容,例如新闻和文章等。。。所有有问题的表都有公共成员id字段(用户id)和内容(文章内容)。然后我还有一个users表,其中包含成员的id和其他信息。我使用最新版本的CakePHP,我可以列出一个成员的所有新闻和记录以及分页,但是有很多重复的内容,我已经尝试过使用SELECT DISTINCT和GROUP BY,但我没有得到想要的结果 以下是我在CakePHP中使用的PHP代码:CakePHP-显示由成员编写的所有内容,php,sql,cakephp,Php,Sql,Cakephp,寻找如何显示用户的所有内容,例如新闻和文章等。。。所有有问题的表都有公共成员id字段(用户id)和内容(文章内容)。然后我还有一个users表,其中包含成员的id和其他信息。我使用最新版本的CakePHP,我可以列出一个成员的所有新闻和记录以及分页,但是有很多重复的内容,我已经尝试过使用SELECT DISTINCT和GROUP BY,但我没有得到想要的结果 以下是我在CakePHP中使用的PHP代码: $this->paginate = array( 'field
$this->paginate = array(
'fields' => array(
'User.id',
'User.alias',
'User.login',
'User.name',
'User.email',
'Profil.avatar',
'Profil.facebook',
'Profil.twitter',
'Profil.google_plus',
'Profil.about_me',
'News.id',
'News.alias',
'News.name',
'News.content',
'News.image',
'News.author_id',
'News.created',
'Article.id',
'Article.alias',
'Article.name',
'Article.content',
'Article.image',
'Article.author_id',
'Article.created'
),
'conditions' => array(
'User.alias' => $member,
'User.group > 0',
'User.activated' => 1,
'User.banned' => 0
),
'joins' => array(
array(
'table' => 'News',
'type' => 'LEFT',
'alias' => 'News',
'conditions' => array(
'News.author_id = User.id',
'News.online' => 1,
'News.created <= NOW()'
)
),
array(
'table' => 'Articles',
'type' => 'LEFT',
'alias' => 'Article',
'conditions' => array(
'Article.author_id = User.id',
'Article.online' => 1,
'Article.created <= NOW()'
)
)
),
'order' => array(
'News.created' => 'DESC',
'Article.created' => 'DESC'
),
'recursive' => 0,
'limit' => 12
);
$data = $this->Paginate('User');
$this->paginate=array(
“字段”=>数组(
“User.id”,
“User.alias”,
'User.login',
“User.name”,
“User.email”,
“Profil.avatar”,
“Profil.facebook”,
“Profil.twitter”,
“Profil.google_plus”,
“关于我的故事”,
“News.id”,
“News.alias”,
“新闻名称”,
"新闻.内容",,
“新闻.图像”,
“新闻.作者id”,
“新闻.创建”,
“Article.id”,
“Article.alias”,
“物品名称”,
“文章内容”,
"文章.图片",,
“文章作者id”,
“文章。已创建”
),
“条件”=>数组(
'User.alias'=>$member,
“User.group>0”,
'User.activated'=>1,
'User.banked'=>0
),
'连接'=>数组(
排列(
'表'=>'新闻',
'类型'=>'左',
'别名'=>'新闻',
“条件”=>数组(
'News.author_id=User.id',
“新闻在线”=>1,
'News.created如果模型文章和新文章已经与用户关联,那么您不需要在join中添加,那么您的News
和Article
模型之间有什么区别?@GuillemoMansilla是的,但是如果我直接使用cakephp关联系统,分页无法正常工作,因此我使用join来确定这一点工作很好。表中的一些字段不一样。您得到了什么结果,与您希望的结果相比如何?例如,我得到:A(来自新闻表的第一个元素)A2(来自新闻表的第二个元素)B(来自文章表的第一个元素)C(来自文章表的第二个元素)A-B-A-C-A我想要:A-B-A2-C
SELECT `User`.`id`, `User`.`alias`, `User`.`login`, `User`.`name`, `User`.`email`, `Profil`.`avatar`, `Profil`.`facebook`, `Profil`.`twitter`, `Profil`.`google_plus`, `Profil`.`about_me`, `News`.`id`, `News`.`alias`, `News`.`name`, `News`.`content`, `News`.`image`, `News`.`author_id`, `News`.`created`, `Article`.`id`, `Article`.`alias`, `Article`.`name`, `Article`.`content`, `Article`.`image`, `Article`.`author_id`, `Article`.`created` FROM `matable`.`users` AS `User` LEFT JOIN `matable`.`News` AS `News` ON (`News`.`author_id` = `User`.`id` AND `News`.`online` = 1 AND `News`.`created` <= NOW()) LEFT JOIN `matable`.`Articles` AS `Article` ON (`Article`.`author_id` = `User`.`id` AND `Article`.`online` = 1 AND `Article`.`created` <= NOW()) LEFT JOIN `matable`.`profils` AS `Profil` ON (`Profil`.`user_id` = `User`.`id`) WHERE `User`.`alias` = 'test' AND `User`.`group` > 0 AND `User`.`activated` = 1 AND `User`.`banned` = 0 ORDER BY `News`.`created` DESC, `Article`.`created` DESC LIMIT 12
SELECT COUNT(*) AS `count` FROM `matable`.`users` AS `User` LEFT JOIN `matable`.`News` AS `News` ON (`News`.`author_id` = `User`.`id` AND `News`.`online` = 1 AND `News`.`created` <= NOW()) LEFT JOIN `matable`.`Articles` AS `Article` ON (`Article`.`author_id` = `User`.`id` AND `Article`.`online` = 1 AND `Article`.`created` <= NOW()) LEFT JOIN `matable`.`profils` AS `Profil` ON (`Profil`.`user_id` = `User`.`id`) WHERE `User`.`alias` = 'test' AND `User`.`group` > 0 AND `User`.`activated` = 1 AND `User`.`banned` = 0