2015/12/21 久米
ファイル | コード例 | 備考 | |
C | src>Controller> NekoChansController.php |
<?php namespace App\Controller; use App\Controller\AppController; class NekoChansController extends AppController{ public function index(){ $nekoChans = $this->NekoChans->find(); $this->set('nekoChans', $nekoChans); } } |
namespaceはこのクラスを 一意に識別するためのもの。 ツリー構造で指定。 例 App\Controller\NekoChansController ほとんどが、フォルダ構成になっている。 useはこのクラスが使う他のクラスを指定。 import文と同じ。 |
M | src>Model>Table> NekoChansTable.php |
無ければデフォルトでオブジェクト生成してくれるので。今回は不要 | |
V その1 |
src>Template>NekoChans> index.ctp |
<h1>猫ちゃんず</h1> <pre><?php print_r($nekoChans); ?></pre> |
|
V その2 |
src>Template>NekoChans> index.ctp |
<h1>猫ちゃんず</h1> <table> <tr><th>id</th><th>名前</th><th>特技</th><th>年齢</th></tr> <?php foreach($nekoChans as $nekoChan): ?> <tr> <td><?= $nekoChan->id ?></td> <td><?= h($nekoChan->name) ?></td> <td><?= h($nekoChan->tokugi) ?></td> <td><?= h($nekoChan->age) ?></td> </tr> <?php endforeach; ?> </table> |
<?= 変数 ?>はコラム参照 h()はhtmlspecialchars() のラッパー。 CakePHP独自仕様。 |
アクセス | http://localhost/web3/caketest/neko-chans/ |
参考)Template>NekoChansはコンテンツのみ定義、Template>Layoutはhtml全体を定義(後述)
演習1 ネコカフェメニューの、全検索してみよ。
ファイル | コード例 | 備考 | |
C | src>Controller> NekoChansController.php |
<?php namespace App\Controller; use App\Controller\AppController; class NekoChansController extends AppController{ public function index(){ $nekoChans = $this->NekoChans->find(); $this->set('nekoChans', $nekoChans); } public function findNeru(){ $nekoChans = $this->NekoChans->findNeru(); $this->set('nekoChans', $nekoChans); } } |
|
M | src>Model>Table> NekoChansTable.php |
<?php namespace App\Model\Table; use Cake\ORM\Table; class NekoChansTable extends Table{ public function findNeru(){ $result=$this->find()->where(['tokugi'=>'寝る'])->order(['age'=>'Desc']); return $result; } } |
直接SQL文を発行することも 可能であるが |
V | src>Template>NekoChans> find_neru.ctp |
上記3.1index.ctpと同じコード | |
アクセス | http://localhost/web3/caketest/neko-chans/find-neru |
find()から連鎖して使用 | 意味 | 例 |
where([ field名 => 値 ]) | 条件句 | ->where(['name like ' => '%ちゃん%']) |
order( [ field名 => 'Asc' または 'Desc' ] ) | ソート順 | ->order(['age'=>'Desc']) |
select([ field1, field2, …]) | 取り出す列指定 | ->select([ 'name', 'age']) |
offset( 整数 ) | 取り出す位置 | ->offset( 20 )->limit( 10 ) |
limit( 整数 ) | 取り出す個数 |
演習2 ネコカフェメニューの、絞り込み検索してみよ。
コラム:<?= $abc ?>とは下記の3つは同じ意味。HTMLに出力。 <?php print $abc; ?> PHP5.4からは3番目がなにも設定せずに使用できることとなった。
|