首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示相关产品,将当前产品排除在网格之外。

显示相关产品,将当前产品排除在网格之外。
EN

Stack Overflow用户
提问于 2016-04-11 13:42:16
回答 1查看 62关注 0票数 1

我有一个在Cakephp2中显示相关产品的网格,它工作得很好,但是在相关产品的网格中显示相同的产品,如何排除它呢?

这是我的艺术品控制器代码:

代码语言:javascript
复制
    public function view($id = null) {
    if (!$this->Artwork->exists($id)) {
        throw new NotFoundException(__('Invalid artwork'));
    }
    $options = array('conditions' => array(
        'Artwork.' . $this->Artwork->primaryKey => $id),
        'recursive' => 0);
    $artwork = $this->Artwork->find('first', $options);
    $this->set('artwork', $artwork);

    // related artworks
    $status = 'Artwork.status';
    $id = 'Artwork.artist_id';
    $related = $this->Artwork->find('all',
        array(
           'limit' => 4, 
           'conditions' => array(
             $status => 1, 
             $id => $artwork['Artwork']['artist_id'])));

    $this->set('artworks', $related);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-11 14:20:46

你需要从相关的作品中排除这些艺术品:

代码语言:javascript
复制
'Artwork.id !=' => $artwork['Artwork']['id']

试试这个:

代码语言:javascript
复制
public function view($id = null) {
if (!$this->Artwork->exists($id)) {
    throw new NotFoundException(__('Invalid artwork'));
}
$options = array('conditions' => array(
    'Artwork.' . $this->Artwork->primaryKey => $id),
    'recursive' => 0);
$artwork = $this->Artwork->find('first', $options);
$this->set('artwork', $artwork);

// related artworks
$status = 'Artwork.status';
$id = 'Artwork.artist_id';
$related = $this->Artwork->find('all',
    array(
       'limit' => 4, 
       'conditions' => array(
         $status => 1, 
         $id => $artwork['Artwork']['artist_id'],
         'Artwork.id !=' => $artwork['Artwork']['id']
)));


$this->set('artworks', $related);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36550486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档