ページ: << 1 ... 9 10 11 12 13 14 15 16 17 18 19 >>

ログを出力する方法

パーマリンク 2008/06/18 19:27:16 著者: cakephp メール
カテゴリ: コントローラー

ログの出力方法は

$this->log(メッセージ, LOG_DEBUG);

これだけで出来ます。

出力先は、
app/tmp/logs/debug.log
になります。

INSERTしたIDを取得する方法

パーマリンク 2008/06/17 14:28:21 著者: cakephp メール
カテゴリ: コントローラー

INSERTしたIDは、下記の方法で取得できます。

$id = $this->Model->getLastInsertID();

404エラーページをカスタマイズする方法

パーマリンク 2008/06/16 16:56:05 著者: cakephp メール
カテゴリ: ビュー

CakePHP1.1

CakePHP で存在しない URL を実行された時に表示されるページは cake/libs/view/templates/errors/error404.thtml の内容が表示されます。

このページを変更したい場合は、app/views/errors/error404.thtml にコピーして内容を変更すれば良いです。



CakePHP1.2 RC2

デフォルトでは、cake/libs/view/errors/error404.ctp の内容が表示されます。
変更したい場合は、app/views/errors/error404.ctp にコピーして内容を変更すれば良いです。

好きな時に好きなキーでアソシエーションする方法

パーマリンク 2008/06/15 18:42:59 著者: cakephp メール
カテゴリ: モデル

通常のアソシエーションのやり方だと、必要ない時に外すという処理が必要になってきます。
そのテーブル単体のデータが欲しい頻度とアソシエーションしたデータが欲しい頻度の比率にもよると思いますが、単体のデータを取得する方が多い場合は、こちらのやり方が良いのではないでしょうか。

また、通常のアソシエーションの場合、結合させるキーは決まっています。
任意のキーで結合したい場合はなかなかうまくいきません。
そんな時も今回の方法だとうまくいきます。

1.アソシエーションの準備

まずはアソシエーションの準備として、app/app_model.php に下記の内容を追加します。

<?php
class AppModel extends Model
{
    // アソシエーションの設定
    public function expects($array)
    {
        foreach ($array as $assoc) {
            $this->bindModel( 
                array($this->assocs[$assoc]['type'] => 
                    array($assoc => $this->assocs[$assoc]))
            ); 
        } 
    }
}

2.各モデルの設定

どのモデルとどの形式でアソシエーションさせるかを設定します。

<?php
class Sample extends AppModel
{
    // アソシエーション設定
    public $assocs = array(
        // 商品マスタ
        'Item' => array(
            'type' => 'hasAndBelongsToMany',
            'className' => 'Item',
            'joinTable' => 'samples_items',
            'foreignKey' => 'sample_id',
            'associationForeignKey' => 'item_id',
        ),
    );

type の部分に他のアソシエーションの形式(hasOne など)も設定できます。

3.コントローラーから呼び出す

そのままアソシエーションさせる場合は、下記のようにすることで呼び出すことが出来ます。

$this->Sample->expects(array('Item'));
$data = $this->Sample->findAll();


キーを変更する場合

$this->Sample->primaryKey = 'item_id'; // キーの変更

$this->Sample->expects(array('Item'));
$data = $this->Sample->findAll();

$this->Sample->primaryKey = 'id'; // キーを元に戻す


Item テーブルに対して条件を指定したい場合

$this->Sample->assocs['Item']['conditions'] = array('name' => 'hoge');
$this->Sample->expects(array('Item'));
$data = $this->Sample->findAll();

統一で使える条件はモデルに直接記載し、可変の条件はコントローラで指定すれば良いですね。

参考:使用するアソシエーションをコントローラで決める[CakePHP]

PostgreSQLの持続的接続を解除する方法

パーマリンク 2008/06/14 11:36:16 著者: cakephp メール
カテゴリ: データベース, PostgreSQL

CakePHP で PostgreSQL を利用する場合、デフォルトのままだと持続的接続(pg_pconnect)になっています。
持続的接続を解除したい時は、明示的に指定しなければなりません。

CakePHP1.1

var $default = array('driver'   => 'postgres',
                     'connect'  => 'pg_connect',
                     'host'     => 'localhost',
                     'login'    => 'user',
                     'password' => 'password',
                     'database' => 'project_name',
                     'prefix'   => '');

'connect' の設定を 'pg_pconnect' とすると、持続的接続になります。


CakePHP1.2

var $default = array('driver'      => 'postgres',
                     'persistent'  => false,
                     'host'        => 'localhost',
                     'login'       => 'user',
                     'password'    => 'password!',
                     'database'    => 'project_name',
                     'prefix'      => '');

'persistent' の設定を true とすると、持続的接続になります。

<< 1 ... 9 10 11 12 13 14 15 16 17 18 19 >>

2018年8月
 << <   > >>
      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 31  

CakePHPに関する情報をまとめていきます。

開発スピードがアップできればうれしいです。

>>連絡はこちらへどうぞ



CakePHP最新版
CakePHP 1.2.3.8166


CakePHPの書籍

CakePHPによる実践Webアプリケーション開発

CakePHP1.2で作成する人にオススメ。
とても参考になります。

まるごとPHP!(vol.2)

安藤さんの解説が載っています。
AmazonのPagination部分は参考になります。

CakePHPによるWebアプリケーション開発

まだ読んだことありません

CakePHPポケットリファレンス
CakePHPポケットリファレンス
CakePHP1.2 でやるなら、これがあると何かと便利♪

CakePHP徹底入門
CakePHP徹底入門
CakePHP1.2 を今から始めるならここから

Fast CakePHP
Fast CakePHP
シンプルでわかりやすい CakePHP の入門書

CakePHPガイドブック
CakePHPガイドブック
CakePHP1.1 ではとても参考にした CakePHP 最初の入門書

検索

XMLフィード

16ブログ     powered by b2evolution