プロフィール

マイティーマウス


My-YouTube

↓元へなちょこドラマー

Author:マイティーマウス
日記ですから。


カレンダー

プルダウン 降順 昇順 年別

10月 | 2017年11月 | 12月
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -



カテゴリー


月別アーカイブ


ブログ内検索


メールフォーム

名前:
メール:
件名:
本文:


スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

CakePHPに手を出してみる(アプリ開発1-2)

テーブルの作成も終わり、いよいよコントローラの作成にはいります。

コントローラはapp/controllers/コントローラ名_controller.phpファイルに書き、コントローラ名は自由です。
参考にしたサイトに倣って「tasks」という名前にしました。

内容は以下の通り。

<?php
class TasksController extends AppController {
var $name = 'Tasks';
var $uses = array('Task');
function index() {
$this->set('tasks', $this->Task->findAll(null, null, 'Task.created ASC'));
}
}


class定義
class TasksController extends AppController
コントローラはPHPのクラスで,必ずAppControllerを継承させます。
var $name = 'Tasks';
「var $name」には,単語の頭文字が大文字のコントローラ名を定義します。

使用するモデルの定義
var $uses = array('Task');
「var $uses」には,コントローラで使用するモデルを定義します。
複数のモデルを使用したいときは単純に配列として複数列挙します。たとえばTaskモデルとExampleモデルを使用したいときは
var $uses = array('Task', 'Example');
となります。

アクションの定義
function index() {
$this->set('tasks', $this->Task->findAll(null, null, 'Task.created ASC'));
}

アクションへのURLは「/コントローラ名/アクション名」となります。
URLからアクセスできないメソッドを作成したいときは,メソッド名の先頭に「_(アンダースコア)」を付ける。アンダースコアを付ないとURLからアクセスできてしまうので,セキュリティーホールの原因になる可能性があります。

アクションの内容
$this->set('tasks', $this->Task->findAll(null, null, 'Task.created ASC'));
テーブルから作成日順にデータを取得し,tasksという変数名でビューに渡しています。
$this->set() はビューに値を渡すメソッドで引数は (変数名, 値)です。

$this->Task->findAll()は,Taskモデルからデータを取得しています。引数は (検索条件, 取得フィールド, ソート条件, etc...) です。検索条件がnullの場合はすべて,取得フィールドもnullの場合は同じくすべて取得します。

ソート条件はMySQLのOrder句の要領で記述します。条件は「モデル名.フィールド名順序」で記述し,複数記述する際はカンマ区切りで記述します。たとえばstatusの降順でcreatedの昇順の際は「Task.status DESC, Task.created ASC」となります。

参考にしているCakePHPで高速Webアプリ開発
ではここで一度実行してエラー画面を見せてくれていますが、そこは飛ばして次へ。


スポンサーサイト

コメント

コメントの投稿



管理者にだけ表示を許可する

トラックバック

http://tommylee.blog71.fc2.com/tb.php/161-78e50d30

 | BLOG TOP | 


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。