Help us understand the problem. What is going on with this article?

[CakePHP] paginateプロパティの値をModelに書いとく方法

More than 5 years have passed since last update.

こんなことは、エンジニアの方々にとっては普通のことなのかもしれませんが、僕のような使い始め人間(素人)には、誰かに教えて頂かないと得られない情報だったりして。調べても全然出てこないので、メモしておきます。

paginateプロパティをModel側に書いておく方法

HogeModel.php
// class Hoge extends AppModel の中に以下を書いておきます。
public function getPiyo(){
    $option = array(
        'limit' => 3,
        'order' => array('name' => 'ASC'),
        'field' => array('name', 'from')
    );
    return $option;
}
HogesController.php
public $paginate;

public function index() {
  $this->paginate = $this->Hoge->getPiyo(); // paginateプロパティ 
  $data = $this->paginate('Hoge'); // こっちはpaginateメソッド
  $this->set('data', $data);
}

テーブル名:hoges

name from sex
太郎 山梨
ゆき 東京
ハンター 不明

教科書にあるようにControllerに書いておく方法

これは、教科書とか、CakePHP Cookbook2.x とかの Pagination の項に書いてある方法。
(僕の中では、…従来の方法。。)

たぶん、paginateプロパティの条件が複雑になると、Controllerの記述が膨大になって分かりづらくなったりするし、複数のメソッドを記述したりする場合なんかも困ることになるので、Model側に書いておいた方が便利なのです!(だそうでございます!)

HogesController.php(今までの書き方)
public $paginate = array(
    'limit' => 5,
    'order' => array('name' => 'ASC'),
    'field' => array('name', 'from')
);

public function display() {
    $data = $this->paginate('Ad');
    $this->set('data', $data);
}
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした