Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP-显示由成员编写的所有内容_Php_Sql_Cakephp - Fatal编程技术网

CakePHP-显示由成员编写的所有内容

CakePHP-显示由成员编写的所有内容,php,sql,cakephp,Php,Sql,Cakephp,寻找如何显示用户的所有内容,例如新闻和文章等。。。所有有问题的表都有公共成员id字段(用户id)和内容(文章内容)。然后我还有一个users表,其中包含成员的id和其他信息。我使用最新版本的CakePHP,我可以列出一个成员的所有新闻和记录以及分页,但是有很多重复的内容,我已经尝试过使用SELECT DISTINCT和GROUP BY,但我没有得到想要的结果 以下是我在CakePHP中使用的PHP代码: $this->paginate = array( 'field

寻找如何显示用户的所有内容,例如新闻和文章等。。。所有有问题的表都有公共成员id字段(用户id)和内容(文章内容)。然后我还有一个users表,其中包含成员的id和其他信息。我使用最新版本的CakePHP,我可以列出一个成员的所有新闻和记录以及分页,但是有很多重复的内容,我已经尝试过使用SELECT DISTINCT和GROUP BY,但我没有得到想要的结果

以下是我在CakePHP中使用的PHP代码:

$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