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

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 にはコントローラー名が入り、コントローラー名とは、複数形です。
  • ちなみに、モデル名は単数形、ビューのフォルダ名は複数形です。
カテゴリー
Linux

CentOS に zip を yum で普通にインストールしました。今更です!

WordPress のテーマを圧縮してダウンロードしようとしたら、そんなコマンドないよって言われました。こんな感じです。

[root@oki2a24 themes]# zip -r oki2a24_13.zip oki2a24/
-bash: zip: command not found

アイエエエエエエエエ!ナンデ?ということで yum であっさりと zip をインストールします。

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

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 ヘルパーの属性設定)
カテゴリー
コンピューター

CakePHP2 フォームで別ページにデータを送る勉強します♪

CakePHP ビュー関係のこれまでの基本まとめ | oki2a24 の続きとなります。

まとめ

  • $_GET、$_POST は使わない。ビューで指定するのみ。
  • ビューファイル名は「アンダースコア記法」。複数単語がある場合はアンダースコアでつなげる。
  • GET の場合の送信されたフォーム情報の取得方法。
    • $this->request->query[‘text1’]
    • $this->request[‘url’][‘text1’]
  • サニタイズ(送信情報のエスケープ)に使うもの。
    • PHP の htmlspecialchars 関数。入力した内容はそのまま出力される。
    • CakePHP の Sanitize::stripAll 関数。「Strips extra whitespace, images, scripts and stylesheets from output」。使用前に読み込む必要あり。App::uses(‘Sanitize’, ‘Utility’);
  • コントローラーからビューへ情報を渡すときは $this->set(‘result’, Sanitize::stripAll($result)); のように指定する。
    これをビューで表示するときは echo $result; などとすればよい。
  • チェックボックス、ラジオボタンはチェックされていないと値そのものが送信されない。
  • POST の場合の送信されたフォーム情報の取得方法。
    • $this->request->data(‘text1’) ← 関数
    • $this->request->data[‘text1’ ] ← 連想配列
カテゴリー
コンピューター

CakePHP2 ビュー関係のこれまでの基本まとめ

CakePHP でこのアクションのときだけこの CSS を使いたい、という場合の切り替え方法を調べます。 | oki2a24 の続きとなります。

少し休憩して、今までの投稿を少しまとめます。

  • ビュー機能 レイアウトを使用できるようにしたりできないようにするには、$autoRender と $autoLayout を設定する。
    アクション内でも設定可能。リンクはこちら
  • レイアウト ページ全体を定義するテンプレートのようなイメージ。オリジナルレイアウトを作りたいなら app/webroot/css/cake.haskap.css app/View/Layouts/haskap.ctp のような形で作る。
  • テーマ CSS の切り替え View/themed/haskapTheme/webroot/css/cake.generic.css という感じで CSS ファイルを置く。 haskapTheme だけ適宜変更。
    コントローラで切り替える。アクションで $ths->theme = “haskapTheme” などと指定すればよい。

次は、本の進行にしたがってフォームの基本を投稿したいです。

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

CakePHP2 でこのアクションのときだけこの CSS を使いたい、という場合の切り替え方法を調べます。

CakePHP でオリジナルのレイアウトを使うための2つの作業 | oki2a24 の続きになります。

レイアウトで別の CSS を設定するのではなく、同じレイアウトを使いつつ、このアクションだけ別の CSS にしたい!というときに使う方法です。

まとめ

  •  View/themed/haskapTheme/webroot/css/cake.generic.css という感じで CSS ファイルを置く。 haskapTheme だけ適宜変更。
  • コントローラで切り替える。アクションで $ths->theme = “haskapTheme” などと指定すればよい。