開発ブログ

株式会社Nextatのスタッフがお送りする技術コラムメインのブログ。

電話でのお問合わせ 075-744-6842 ([月]-[金] 10:00〜17:00)

  1. top >
  2. 開発ブログ >
  3. CMS >
  4. baserCMS >
  5. Viewでデータベースの情報を取ってきたいときに使う手法
no-image

Viewでデータベースの情報を取ってきたいときに使う手法

こんにちは
ニシザワです。

本日はBaserCMSでViewだけでデータベースの情報を取ってきたいときの手法です。
結構、こういう場面ってあるんじゃないでしょうか。
Controllerをフックする事も可能ですけど、それすら面倒なときに使う手法です。
ちなみに、メンテナンスを考えるとControllerに書く方が絶対的にいいので、この辺を理解の上、参考にしてください。

基本的に、BaserCMSはCakePHPフレームワークの上に実装されているのでCakeの仕様通りに使えます。
ですので、Cakeのリファレンスをみてもらうのもありかと思います。
URL:http://book.cakephp.org/2.0/ja/models/retrieving-your-data.html

では、ブログの記事を取得するを例にまとめます。
 

        <?php
        $blogPost= ClassRegistry::init('BlogPost'); //テーブルを選択
        $postDatas = $blogPost->find('all', ['conditions' => [
                                                    'or' => [ //またはの場合 andの場合はこの配列を省きます。
                                                        ['BlogPost.blog_category_id' => [4,6],'BlogPost.status' => 1], //条件文の記述
                                                        ['BlogPost.blog_content_id' => [2],'BlogPost.status' => 1]  //またはの記述
                                                        ]
                                                    ],
                                                    'limit' =>5, //取得するカラムの制限
                                                    'order' => array('BlogPost.created DESC'), //並べ替え
                                                    'offset' => 10 //取得カラムを上から何番目から取得するか
                                                ]
            );
        
        ?>

後はpostDatasに入っているデータをお好きなように取得してくるだけです。
構造を理解するならvar_dump($postDatas)を実行すると分かりますよ。
ちなみに整ったのを出力するなら
<?php
print "<pre>";
print_r($postDatas);
print "</pre>";
?>
とかでもいいですね。
私は分かりやすいのでこっちを使ってます。

他にも条件分はあるので、いろいろためしてみてください。

最後まで読んでいただきありがとうございました。
 
TOPに戻る