2016-04-11 3 views
1

Cakephp2の関連製品を表示するグリッドを持っていますが、同じ製品が関連製品のグリッドに表示されますが、どうすれば除外できますか?ここで関連製品を表示し、現在の製品をグリッドから除外します

は、私の作品のコントローラのコードです:

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); 
} 

答えて

1

あなたは、関連のアートワークを除外する必要があります。

'Artwork.id !=' => $artwork['Artwork']['id'] 

はこの試してみてください:あなたは天才です

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

を、ありがとう –

関連する問題