読者です 読者をやめる 読者になる 読者になる

find('prevnext')とか作ってたけど、find('neighbors')があった

php CakePHP

またCakePHP
リストのひとつを選んだときに、その前後の要素をページングとして表示したかったので、

$total = parent::find('count', $options);
$prev = ($id === 1) ? null
      :               parent::find('first', array_merge(
                      array(
                          'conditions' => array('id' => $id - 1),
                      ),
                      $options
      ;
$next = ($total === $id) ? null
      :                    parent::find('first', array_merge(
                               array(
                                   'conditions' => array('id' => $id + 1),
                               ),
                               $options
                           ))
     ;
return array($prev, $next);

みたいな感じのを必死に作りましたが、
よくよくドキュメント見てたらfind('neighbors')がありました。

404 Not Found

function some_function() {
$neighbors = $this->Article->find('neighbors', array('fields' => 'id', 'value' => 3));
}

# この例、typoで本当は「field」みたい。それか'fields'=>array('id')かな?

この場合、$this->Article->id = 3って入力してあればvalue部分は省略できるのですね。
ドキュメントはちゃんと読むべきだなぁ。。