カテゴリー
コンピューター

CakePHP2 のバリデーションの基本を勉強します。

CakePHP の FormHelper::input の使い方とバリデーションとの関係を勉強します♪ | oki2a24 の続きの投稿となります。

バリデーション、つまり入力チェックの基本を勉強します。

ポイント

  • モデルにバリデーション情報を書きます。
  • 書き方。
    public $validate = array(
    フィールド名。つまり DB のカラム名‘ => array(
    ‘rule’ => ‘notEmpty とかルールを記入‘,
    ‘message’ => ‘エラーメッセージ
    ),
    );
カテゴリー
コンピューター

CakePHP2 の FormHelper::input の使い方とバリデーションとの関係を勉強します♪

CakePHP。モデル未使用でデータベースデータ操作の基本を学習します♪ | oki2a24 の次の投稿となります。

バリデーションを設定したのに、メッセージが表示されません!本を読んでも、「表示されるはず!」と明記されています。アイエエ!ナンデ!?調べました。

ポイント

  • ビューで $this->Form->input() を使えばバリデーションのエラーメッセージを表示できる。
  •  ビューで $this->Form->text や $this->Form->text を使っても、バリデーションのエラーメッセージは表示されない。
  • $this->Form->error() でエラーメッセージを表示できる。みたいですけれど、どうにもまだうまくいきません><。

以下、FormHelper::input の詳細です。

カテゴリー
コンピューター

CakePHP2。モデル未使用でデータベースデータ操作の基本を学習します♪

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(保存するデータ)
カテゴリー
コンピューター

CakePHP2 の scaffold 応用編を通して使いどころを少しだけ考えます!

CakePHP の scaffold を体験します♪ | oki2a24 の次の投稿となります。

scaffold を上書きして捨てていく開発、scaffold を使用して見た目だけ変える開発ができるようなので、見てみます。

ポイント

  • scaffold のレイアウトを修正するには、cake/sample/lib/Cake/View/Scaffolds/ フォルダのテンプレートをコピーして、cake/sample/app/View/Scaffolds/ フォルダに入れて、これを修正します。
  • scaffold のアクション、index、add、edit、view、delete、はオーバーライドできます。
    ※継承した子クラスで親クラスのメソッド、プロパティを上書きすることです。
カテゴリー
コンピューター

CakePHP2 の scaffold を体験します♪

CakePHP の FormHelper::label 関数の使い方を学びます! | oki2a24 の次の投稿です。

scaffold、スキャフォルドについてです。

変わった単語なので辞書で調べました。「足場」「作業台」「絞首台」。3つ目。。。ま、まあ、それはともかく、コントローラーにスキャフォルドの設定を1行だけ行なえば、ビューはもちろん、モデルすら用意する必要なく、データベースを管理するためのちょっとしたシステムを自動的に作れるという優れものなのだそうです。

では、やってみましょう。

ポイント

  • コントローラーに public $name を設定します。
  • コントローラーに public $scaffold; を書きます。
カテゴリー
コンピューター

CakePHP2 の FormHelper::label 関数の使い方を学びます!

CakePHP の View 内のフォルダ名が規約違反でも通ってしまう問題を解決しました! | oki2a24 の次の投稿になります。

CakePHP Form ヘルパーによるフォーム生成を勉強します♪ | oki2a24 での課題、「$this->Form->label(name 属性で指定される名前) で「name 属性で指定される名前」を設定すると、画面に表示される文言も「name 属性で指定される名前」となってしまい、全角でラベルが表現できません。困りました!」を解決しました!やったね!です♪

ポイント

  • ラベルタグ生成
    $this->Form->label(name 属性で指定される名前, ラベル名)
カテゴリー
コンピューター

CakePHP2 の View 内のフォルダ名が規約違反でも通ってしまう問題を解決しました!

CakePHP で DB データを表示するシンプルな例!モデルなしで勉強です! | oki2a24 の続きとなります。

わかりました!

前回、View フォルダ内に作るフォルダ名が単数形でないとエラーとなる不思議現象が発生しましたが、原因がわかりました!

まとめ

  • コントローラーファイルの public $name には複数形を指定します。
  • つまり、public $name にはコントローラー名が入り、コントローラー名とは、複数形です。
  • ちなみに、モデル名は単数形、ビューのフォルダ名は複数形です。
カテゴリー
コンピューター

CakePHP2 で DB データを表示するシンプルな例!モデルなしで勉強です!

CakePHP の MySQL 設定を行います♪ | oki2a24 の続きとなります。

CakePHP でデータベースからデータをひっぱって来る勉強をします。シンプルに!なのでモデルは使いません!

まとめ

  • DB データは $this->Board->find(‘all’); で取得できますが、この Board はモデル名を指す。モデルなので単数形であることに注意です。
  • 「Board はモデル名を指す」といいつつ、Model フォルダに Board モデルが無くても問題ありません。
  • ただし DB に Boards テーブルは必要です。テーブルは複数形であることに注意です。
カテゴリー
コンピューター

CakePHP2 の MySQL 設定を行います♪

CakePHP Form ヘルパーによるフォーム生成を勉強します♪ | oki2a24 の続きになります。

前提。CakePHP のDB 設定を行う前にやっておくこと。

CakePHP の設定を行う前に、DB を作っておく必要があります。たとえばこんな感じにしました。

  • ユーザー名 cakebords
  • パスワード cakebords
  • データベース名 cakebords
  • 文字コード utf-8

CakePHP のDB 設定実践

cake/sample/app/Config/database.php を、database.php.default をコピーしてリネームして、作成します。login(ユーザー名)、password、database、を設定し、encoding がコメントとなっているのを外しました。

	public $default = array(
		'datasource' => 'Database/Mysql',
		'persistent' => false,
		'host' => 'localhost',
		'login' => 'cakebords',
		'password' => 'cakebords',
		'database' => 'cakebords',
		'prefix' => '',
		'encoding' => 'utf8',
	);

保存したら、ウェブアプリケーションのホームページにアクセスします。

カテゴリー
コンピューター

CakePHP2 Form ヘルパーによるフォーム生成を勉強します♪

CakePHP フォームで別ページにデータを送る勉強します♪ | oki2a24 の続きになります。

まとめ

  • フォーム開始タグ生成
    $this->Form->create(保存先モデル名, フォームタグの属性とその値);
  • 入力フィールドタグ生成
    $this->Form->text(name 属性で指定される名前。「モデル名.フィールド名」が一般的)
  • チェックボックスタグ生成
    $this->Form->checkbox(name 属性で指定される名前, フォームタグの属性とその値)
  • ラベルタグ生成
    $this->Form->label(name 属性で指定される名前)
  • ラジオボタンタグ生成
    $this->Form->radio(name 属性で使用される名前, value と label の値の配列, Form ヘルパーの属性設定)
  • 選択リストタグの生成
    $this->Form->select(name 属性で使用される名前, value と画面に表示される値の配列, Form ヘルパーの属性設定)