Cake PHP model内の項目の表示順序を決める

PHP

CakePHP Cake PHP モデル内のデータの表示順序を変更する

cake PHP 1.2.3.8166.

このバージョンからなのかわかりませんが、indexなどのデータの表示順序はデータが更新された順番になってますね。
なんだか不便だと思います。

コントローラーからfindAllなどとする場合は、その都度パラメーターに’order’を指定することでデータの表示順序を変更できますが、モデルの中に記述して、そのモデル内ではデータの表示順序はこれ、というように設定ができます。

 //モデルファイルの中に記述
 var $order = "基準にしたいフィールド名"
 
 //アソシエーションがある場合は、モデル名を指定しましょう。
 
 var $order = "基準にしたいモデル名.フィールド名";
 
 //例 Projectというモデルのidを降順に表示したい場合
 
  var $order = "Project.id DESC";

参考 
http://book.cakephp.org/view/440/order

Cake PHP jqueryを利用する

PHP

Cake PHPでjqueryを利用する

ここではjQueryのアコーディオンメニューを作ってみます。
サンプルはこんな感じです。
http://jqueryui.com/demos/accordion/

 
  1. 下記のサイトから事前にjQueryをダウンロードしておきます。

http://jqueryui.com/download

  1. webroot/js ディレクトリに、jquery(jquery-1.3.2.min.js、jquery-ui-1.7.2.custom.min.js)を入れておきます。
  2. コントローラーに次のように書きます。
  3.  var $helpers = array('Ajax','Javascript');
    
    1. ビューファイルから、jQueryのファイルにリンクを張ります。
    2.  echo $javascript->link('jquery-1.3.2.min'); 
       echo $javascript->link('jquery-ui-1.7.2.custom.min'); 
      
      1. ビューファイルに次のように記載します。
      2.  <div id="accordion">
            <div>
         	<h3><a href="#">First</a></h3>
         	   <div>Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.</div>
            </div>
         <div>
        

        Second

        Phasellus mattis tincidunt nibh.
         </div>
         <div>
        

        Third

        Nam dui erat, auctor a, dignissim quis.
         </div>
         </div>
        

Cake PHP hidden タグを作る

PHP

Cake PHP メールを送信する

CakePHP 1.2.3.8166

フォームの隠し項目、hiddenタグで作るあれですが、結構使いますよね。
CakePHPではフォームヘルパーを利用して、簡単に作れます。

公式のCakePHPマニュアルサイトではちょっと説明が足りなかったようなので、補足しておきます。

 //viewファイルに記述
 echo $form->hidden('項目名', array('value'=>'値'));

Cake PHP ctpファイル、thtmlファイルをDreamweaverで編集する方法

PHP
cakephpを使うときviewファイルであるctpを編集するときに全て手打ちはめんどくさいですよね。
dramweaverのデザインで編集をしたいと思ったときにdreamweaverでctpファイルthtmlファイルを読み込んでもコードだけしか表示されません。
CS3、CS4、CS5の場合、『C:\Program Files\Adobe\Adobe Dreamweaver CS3(4or5)\configuration\DocumentTypes』のMMDocumentTypes.xmlを開き、75行目に
macfileextension=”php,php3,php4,php5”winfileextension=”php,php3,php4,php5”という記述があるのでこの両方に ”php,php3,php4,php5,ctp,thtml”というように追記して保存します。dreamweaverを再起動してctpファイルを読み込むとデザインで編集できるようになっています。

Cake PHP bake でプロジェクトを作る手順

PHP

CakePHPではシェルなどのコマンドラインでデータベースのテーブルを作ったり、MVC (M=モデル、V=ビュー、C=Controller)のプログラムを自動で生成してくれる機能があります。
自分で作るより早いので、ぜひ使いましょう。

本家マニュアルサイト
http://book.cakephp.org/ja/view/108/The-CakePHP-Console

とりあえず、WindowsのローカルPCで動作させるときは、

cake/console/cake.bat

を動作させてください。

流れとしては次の通りです。各作業の後には、cake.batのコマンドが書いてあります。

  1. bakeでプロジェクトを作る
  2.  bake project 
    
    1. データベースを作っておく(これは手作業)
    2. データベースの接続をbakeで作る
    3.   bake をすると、DB接続がない場合、DBへの接続が作れる
      
      1. schemaファイルを作る
      2.  schema generate
        
        1. schema.phpを編集してテーブルを作る
        2.  schema run create
          
          1. モデルを作る 
          2.  bake model ただ単にbakeでMを選択してもよい
            
            1. コントローラーを作る
            2.  bake controller ただ単にbakeでCを選択してもよい
              
              1. ビューを作る
              2.  bake view ただ単にbakeでVを選択してもよい
                 →モデルとコントローラができていないと、scaffoldが使えない
                

                xamppを利用してWebサーバーを使っている時、下記のようなコマンドで動かします。

                 
                 例: C:\program Files\xampp\htdocs\caketestの下にtestprojectプロジェクトを作成する
                 
                 C:\program Files\xampp\htdocs\caketest>cake\console\cake.bat bake project C:\program Files\xampp\htdocs\caketest\testproject
                

                一度プロジェクトを作成したら、あとはbakeコマンドを打てば流れでやれます。

                 C:\program Files\xampp\htdocs\caketest>cake\console\cake.bat bake -app testproject
                
                • bake -app testprojectの-app以降を忘れてて、ちょっと止まってました。 — ななし {2010-12-22 (水) 20:26:53}