今更なのですが、わたくしが Eclipse (使っているのは Pleiades All in One 日本語ディストリビューション)で CakePHP の調べ物をしたりするときに、お手軽にセットアップしている方法をメモしておきます。
カテゴリー: コンピューター
Linux の悪戦苦闘記、プログラミング、WordPress、ウェブサービス、Windows、Mac などの話題ですの。
普段だったら、コンピューターのプロパティからシステムのプロパティを表示し、環境変数のシステム環境変数の path から設定する「パス」をコマンドプロンプトから設定します。
なお、今回の設定はコマンドプロンプトを閉じると無効になります。
コマンドプロンプトで一時的にパスを通す方法
- 現在のパスの確認方法 path
- パスを通す方法 set path=%path%;C:\pleiades\xampp\php
「;」が必要かどうか、事前に現在のパスを確認すること
CakePHP のアソシエーション!モデルを連携させて複数テーブルからデータを取得する勉強します! | oki2a24 の続きの投稿となります。
本を参考に、掲示板アプリを勉強しました。ただ、こう変えたほうがいいかもしれない、という点がいくつかありましたので、メモして残しておきます。
ポイント
- 引数が必要だったり入らなかったりするアクションの場合、関数の定義で引数を書きますけれども引数がなかった場合に備えて null などを設定します。そうしないと、エラーが出ます。
たとえば、public function edit($param = NULL) などとします。 - FormHelper、HtmlHelper をきちんと使いたい。直にタグを書いてごり押さないようにしたいです。
CakePHP のバリデーションの基本を勉強します。 | oki2a24 の次の投稿となります。
以前ひとつのテーブルからのデータ取得を行いました。それも、モデルなしで。今回はモデルをしっかり使って、そしてテーブルは複数を連携させて、という例となります。2つのテーブルを使用しますが、連携のさせ方を網羅させて、しらみつぶしに動きを調べようと思います。
今回は、hasAndBelongsToMany を除いた hasOne、belongTo、hasMany の3パターンを取り扱います。
ポイント
- モデルに連携したい相手のモデルを書く。書き方は、hasOne、belongTo、hasMany、hasAndBelongsToMany の4種類ある。
- hasOne 1:1。相手テーブルに自テーブルの id 値を設定します。例、users テーブルの1つの行は、profiles テーブルの1つの行を持っている。
- belongTo n:1。自テーブルに相手テーブルの id 値を設定します。例、users テーブルの1行は、recipes テーブルの多くの行を持つことができる。
- hasMany 1:n。相手テーブルに自テーブルの id 値を設定します。例、recipes テーブルの多くの行は、users テーブルの1つの行に所属している。
- belongTo と hasMany はどちらも1つに対して複数の対応ですが、1:n ( hasMany )の場合は1つの行に対して複数の行が紐づいた状態でデータを取得できます。一方、n:1 ( belongTo ) の場合は1つの行に対して1つの行が紐づいた状態でデータを取得できます。
- モデルの連携は適当では駄目です。エラーとなります。または、変なデータが取れると思います。
CakePHP の FormHelper::input の使い方とバリデーションとの関係を勉強します♪ | oki2a24 の続きの投稿となります。
バリデーション、つまり入力チェックの基本を勉強します。
ポイント
- モデルにバリデーション情報を書きます。
- 書き方。
public $validate = array(
‘フィールド名。つまり DB のカラム名‘ => array(
‘rule’ => ‘notEmpty とかルールを記入‘,
‘message’ => ‘エラーメッセージ‘
),
);
CakePHP。モデル未使用でデータベースデータ操作の基本を学習します♪ | oki2a24 の次の投稿となります。
バリデーションを設定したのに、メッセージが表示されません!本を読んでも、「表示されるはず!」と明記されています。アイエエ!ナンデ!?調べました。
ポイント
- ビューで $this->Form->input() を使えばバリデーションのエラーメッセージを表示できる。
- ビューで $this->Form->text や $this->Form->text を使っても、バリデーションのエラーメッセージは表示されない。
- $this->Form->error() でエラーメッセージを表示できる。みたいですけれど、どうにもまだうまくいきません><。
以下、FormHelper::input の詳細です。
アイエエエ!?真っ白ナンデ!?昨日の午後から自分のサイトにアクセスしようとしてもサーバーエラーとなってまったく反応してくれません。復活するまでの足跡をメモします。
その前に、覚えておきたい心得
- おかしくなった直前の操作に注目すること!
なぜこのようなことをあえて書くかといいますと、自分のブログにアクセスできなくなってからまずやったことが、Apache、MySQL、サーバの再起動だったからです。ぜんぜん見当違いでした。
WordPress が真っ白となった原因
WordPress › Sharekoube « WordPress Plugins のバージョン0.8と、WordPress › Jetpack by WordPress.com « WordPress Plugins のバージョン1.6.1の相性が悪かった。
CakePHP の scaffold 応用編を通して使いどころを少しだけ考えます! | oki2a24 の次の投稿となります。
コントローラーとビューを使ってテーブルデータ操作の基本を学習します。モデルの作成は行いません。
ポイント
- DB データの登録、検索や削除などの操作は、コントローラーから行なう。モデル、ではない。
- $this->モデル名->関数、で操作する。DB にテーブルがあれば、モデルはなくても大丈夫です。
- 検索の find 関数の第1引数による動きまとめ
- find(‘all’); 全レコードを得ます。
- find(‘first’); 最初の1レコードを得ます。
- find(‘list’); レコードのリストを得ます。
- find(‘count’); レコード数を得ます。
- find 関数で得られる結果の構造は第1引数のタイプによりそれぞれ異なります。
- find 関数第2引数の conditions で検索条件を指定できます。
- 削除。delete(削除する行の id )
- 挿入または更新。save(保存するデータ)
CakePHP の scaffold を体験します♪ | oki2a24 の次の投稿となります。
scaffold を上書きして捨てていく開発、scaffold を使用して見た目だけ変える開発ができるようなので、見てみます。
ポイント
- scaffold のレイアウトを修正するには、cake/sample/lib/Cake/View/Scaffolds/ フォルダのテンプレートをコピーして、cake/sample/app/View/Scaffolds/ フォルダに入れて、これを修正します。
- scaffold のアクション、index、add、edit、view、delete、はオーバーライドできます。
※継承した子クラスで親クラスのメソッド、プロパティを上書きすることです。