CakePHP

CakePHPで検索条件の引き継ぎ

検索条件の引き継ぎでハマったのでメモ。 1. Searchプラグインの導入 public $components = array('Search.Prg'); 2. 検索処理の作成 public function search() { $this->Prg->commonProcess(); $this->Paginator->settings['conditions'] = $this->Post->pa…

Vagrantでオレオレ証明書

Vagrant環境でSSLを使用して開発中のCakePHPのサイトに接続したい状況が発生したので以下の方法で対応しました。 CentOS 6.6 CakePHP 2.4.5 1. mod_sslのインストール $ yum install mod_ssl opensslがインストールされていない場合は、こちらも必要。 2. オ…

CakePHPでテーブルをソートする時のメモ

CakePHPでテーブルをソートする時のメモ。 <table> <tr> <th>paginator->sort('created', '作成日');?><th> <tr> <tr> <td><td> <tr> </table> 参考 Paginator

jQueryでドラッグアンドドロップの並び替え

ドラッグアンドドロップで並び替え ドラッグアンドドロップで項目を並び替えるUIをつくるためのメモ。並び替えた後、ajaxで並び順の値を更新する処理を想定しています。 必要ファイル jQuery jQuery UI jquery.ui.core.min.js jquery.ui.widget.min.js jquer…

CakePHPでPDFを出力する際に参考にしたリンクまとめ

CakePHPでPDFを出力する際に参考にしたリンクまとめ 参考 [PHP] TCPDF を使用し PDF ファイルを作成する TCPDF-文字列の表示 CakePHPとTCPDFを使ってPDFを作成する php/フレームワーク/CakePHP2.X/TCPDF TCPDFとFPDIの使い方メモ PHP:TCPDF:画像を指定する…

CakePHPのfindメソッドでDATE_FORMAT関数を使う

セレクトボックスで指定された年月のデータを取得するためにDATE_FORMAT関数を使いたいという状況がありました。CakePHPのfindメソッドでDATE_FORMAT関数を使うための参考になる記事を見つけられなかったのですが、モノは試しにと書いてみたら動きました。Ca…

ComposerでCakePHPをインストールする

CakePHP本体の動作を確認するための環境が欲しくなりVagrant+ComposerでCakePHPをインストールしました。敷居が高い印象がありましたが、参考記事の解説が詳細に分かりやすく書かれていたおかげで無事にインストールできました。 基本作業:CakePHPをCompose…

CakePHPでXMLを出力する

XMLを出力する時のメモ。ハマってしまい、ビュークラスやシリアライズなど色々なやり方を試しましたが以下の方法が一番自由度が高く簡単にできました。 XMLを出力する $result = array( 'Response' => array( 'Result' => 'OK' ) ); $this->RequestHandler->…

CakePHPでプラグインを使わずに画像の遅延ロード

画像を遅延ロードした時のメモ。Lazy Loadのプラグインが使えない状況があったので簡易版としてつくりました。 echo $this->Html->image('transparent.png', array( 'data-image' => $this->Html->image('sample.jpg'), 'class' => 'lazy-loading', )); $(wi…

CakePHPで画像の遅延ロード

画像を遅延読み込みする時のメモ。画像を多く扱うページの表示速度改善を目的に。実際に、ページを開いた時の読み込みサイズ・リクエスト数が減り、ページの表示スピードが改善されました。待ち時間のストレス減少を期待してローディング画像も入れてみまし…

CakePHPでデータを保存する時にvalidateを無効にする

データを保存する時にvalidateを無効にするメモ $this->User->save($data, false); 参考 [CakePHP]コントローラー内で一時的に一部validateを無効にする方法

任意のログファイルにログを出力する

任意のログファイルにログを出力する時のメモ。 app/Config/bootstrap.php define('DEBUG_LOG', 'debug_log'); CakeLog::config('debug_log', array( 'engine' => 'FileLog', 'types' => array('debug_log'), 'file' => 'debug_log', )); $this->log($debug,…

今年お世話になった技術書3冊

今年、購入した本の中から選びました。何度も読みなおし、引きなおし、デスクに常備していた技術書3冊です。2月の頭に初めてCakePHPに触れ、そのままひたすらCakePHPでの開発に携わった私のCakePHP元年を支えてくれた3冊です。ここで紹介する本のおかげで、…

CakePHPのFormヘルパーでURLにidを指定する方法

FormヘルパーでURLにidを指定する時のメモ。 やりたいこと /users/edit/15 FormヘルパーでURLにidを指定する echo $this->Form->create('User', array('url' => array('action' => 'edit', $user_id))); 参考 $form->createで idを指定する方法

CakePHP2 - コンポーネントのコールバックメソッド一覧

コンポーネントのコールバックメソッドが呼び出されるタイミングを整理するために、自分用にメモ。 initialize Controller::beforeFilter()の前に呼び出される public function initialize(Controller $controller) { } startup Controller::beforeFilter()…

componentでcontrollerの関数を使う方法

[CakePHP2]componentでcontrollerの関数を使う方法 コンポーネントを自作している時に、コントローラーの関数を使いたい場面があったのでメモ。 protected $_controller = null; public function __construct(ComponentCollection $collection, $settings = …

Formヘルパーでsubmitのエスケープ処理を解除

CakePHPのFormヘルパーでsubmitのエスケープ処理を解除する時のメモ。 $this->Form->submitでのエスケープを解除する方法が見つからず。$this->Form->buttonだとデフォルトでescapeがfalseとのことなので、こちらの方法で対応しました。 Formヘルパーでsubmi…

CakePHPでURLを自由につくる

CakePHPでURLを自由につくる時のメモ。 nanapiのようなURLをつくるにはどうすればいいか考えていたところ、akiyanさんの神スライドに出会って解決しました。 http://nanapi.jp/cook/1484 ルーティングの設定 app/Config/routes.phpに記述 Router::connect('/…

バリデーションのエラー内容を取得

CakePHPでバリデーションのエラー内容を取得する時のメモ バリデーションのエラー内容を取得 debug($this->validateErrors($this->User)); 参考 コントローラーでバリデーションエラー内容を取得 バリデーションエラーメッセージの取得

Formヘルパーで日付セレクトボックスを表示

年月日の日付セレクトボックスをつくる時のメモ Formヘルパーで日付セレクトボックスを表示 $this->Form->input('date', array( 'type' => 'date', 'label' => '年月日', 'dateFormat' => 'YMD', 'monthNames' => false, 'empty' => false, 'minYear' => dat…

find(‘list’)でグループ化して取得

リストをグループ化して取得する時のメモ。 find(‘list’)でグループ化して取得 $params = array( 'fields'=>array( 'User.id', 'User.name', 'User.group_id' ), 'order'=>'User.group_id ASC' ); $userGroups = $this->User->find('list', $params); 3番目…

アソシエーションの解除

アソシエーションを解除する時のメモ。 unbindModelでアソシエーションを解除 $this->User->unbindModel(array( 'hasMany' => array( 'Recipe', 'Comment', ), ), false); 一時的に外したい場合は、第2引数をtrueに。常に外したい場合はfalseを指定。 参考 …

hasManyで日付指定

hasManyで日付条件を指定する時のメモ。 hasManyで日付指定 $today = date('Y-m-d'); $nextWeek = date('Y-m-d', strtotime($today.'1 week')); $options = array( 'Recipe.date >=' => $today, 'Recipe.date <' => $nextWeek, ); $this->User->hasMany['Rec…