Viewでデータベースの情報を取ってきたいときに使う手法
こんにちは
ニシザワです。
本日はBaserCMSでViewだけでデータベースの情報を取ってきたいときの手法です。
結構、こういう場面ってあるんじゃないでしょうか。
Controllerをフックする事も可能ですけど、それすら面倒なときに使う手法です。
ちなみに、メンテナンスを考えるとControllerに書く方が絶対的にいいので、この辺を理解の上、参考にしてください。
基本的に、BaserCMSはCakePHPフレームワークの上に実装されているのでCakeの仕様通りに使えます。
ですので、Cakeのリファレンスをみてもらうのもありかと思います。
URL:http://book.cakephp.org/2.0/ja/models/retrieving-your-data.html
では、ブログの記事を取得するを例にまとめます。
後はpostDatasに入っているデータをお好きなように取得してくるだけです。
構造を理解するならvar_dump($postDatas)を実行すると分かりますよ。
ちなみに整ったのを出力するなら
私は分かりやすいのでこっちを使ってます。
他にも条件分はあるので、いろいろためしてみてください。
最後まで読んでいただきありがとうございました。
ニシザワです。
本日は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>"; ?>とかでもいいですね。
私は分かりやすいのでこっちを使ってます。
他にも条件分はあるので、いろいろためしてみてください。
最後まで読んでいただきありがとうございました。