CakePHPのfindでMAX、MIN関数などを使う場合は、 fieldsキーに指定します。 サンプルデータ: +----+--------+ | id | number | +----+--------+ | 1 | 100 | | 2 | 10 | | 3 | 1000 | +----+--------+ サンプルコード: $result = $this->Example->find('first', array("fields" => "MAX(Example.number) as max_number")); $resultの出力結果: Array ( [0] => Array ( [max_number] => 1000 ) ) SUM(集計)も同様に指定できます。 サンプルコード: $result = $this->Example->find('first',
ここに新しくレコードを追加するとき、重複がないことをどうチェックしたらいいでしょうか? 最初私は次の様に考えました(CakePHPの検索条件) $params = array( 'conditions' => array( 'or' => array( array( "Activity.start_time >" => $data['Activity']['start_time'], "Activity.start_time <" => $data['Activity']['end_time'], ), array( "Activity.end_time <" => $data['Activity']['end_time'], "Activity.end_time >" => $data['Activity']['start_time'], ), array( "Activity.star
1. Get reCAPTCHA key. http://www.google.com/recaptcha 2. Setting. Download recaptchalib.php. And put it in recaptcha_plugin/vendors. http://code.google.com/p/recaptcha/downloads/list?q=label:phplib-Latest 3. Config. Insert keys in Recaptcha/Config/key.php . $config = array( 'Recaptcha' => array( 'Public' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'Private' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxx
CakePHPでトランザクションを使う方法をネットで検索したところ、 古いバージョンばかりヒットするのでメモしておきます。 AppModel.phpに下記を追記します。 function begin() { $dataSource = $this->getDataSource(); $dataSource->begin($this); } function commit() { $dataSource = $this->getDataSource(); $dataSource->commit($this); } function rollback() { $dataSource = $this->getDataSource(); $dataSource->rollback($this); }
本日の目標が一段落したので、 ビールのみながら技術メモです。 やりたいこと コメントフォーム。 送信ボタンを押すと、メッセージはデータベースに保存され、 リダイレクトなしで送信完了のメッセージを出す。 まぁこれは一例で、実際の使い方はいろいろ。 画面遷移せずに… •TODOリストを追加する •ON/OFFを切り替える •記事を削除する とかね。 AJAXヘルパーってあるんだけど今回は使いません。 AJAX helper こんなのあるよって教えてもらったんだけど、 更新されてないっぽいしね。2.xでも使えるのは確認してますが。 ダウンロードしてインストールする必要もある。 CakePHPに標準であるJsHelperでできるので、こっちでやります。 JsHelper コーディング jQueryはあらかじめ読み込んでおいてください。 app/view/messages/index.ctp <?
Cakephpを使っている人からすれば、何を当たり前のことを……と思うかもしれないのですが、僕はその当たり前のことを当たり前のように知りませんでした。しかし当たり前ですがその事実を声を大にして叫んだところで周りの人からイタい視線を浴びせられるだけなので、ここにそれを記しておきたい所存にございます。 事の発端 「テスト環境はDBを書き換えた後、何もしなくても今まで通りデータの取得ができるのに、何で本番環境は変更を加えた後、一回キャッシュを削除しないとデータを取ってきてくれなくなるんだろう」 Cakephpを使って開発をしていて、ずーーーっと思っていた疑問なんですけどね。 よくやらかしてたのが、テスト環境から本番環境にアップロードした際、なぜか急に画面が出なくなってテンパるっていう事態。全然原因が分からなくて、まだCakephpを使い始めだった頃はもっかいバックアップを上げ直して、それからテス
The AjaxHelper with jQuery utilizes the ever-popular jQuery and jQuery UI libraries for Ajax operations and client side effects.AJAX helper The AjaxHelper utilizes the ever-popular jQuery and jQuery UI libraries for Ajax operations and client side effects. To use the AjaxHelper, you must have a current version of the JavaScript libraries from jQuery download page and jQuery UI download page. In ad
極める!Security Component (CakePHP Advent Calendar 2010 24日目) 2010-12-24 目次 この記事はCakePHP Advent Calendar 2010 24日目に向けて書きました CakePHP Advent Calendar 2010に参加したい!と思ったときには既に遅し、トリの24日しか空いておらず、トリっぽい記事なんて書けないわーと思っていました。が、主催のcakephperさんより「べつにトリっぽくなくていいですよ」との温かい言葉を頂いたので、前々から書きたかったSecurityコンポーネントの話を書いてみます。対象バージョンは1.3.6 Stableです。 ちなみにAdvent Calendarとはなんぞや?といいますと、cakephperさんの書き込みより以下引用。 技術系の方がやっているAdvent Calenda
トークンが一致しないと SecurityComponent の blackHole メソッドが実行されます。このメソッドでは header('HTTP/1.0 404 Not Found'); を出力して exit します。(画面は空白) 任意の処理を実行したい場合は blackHoleCallback でコールバック関数を指定します。 設定できるのは同じコントローラ内のアクションのみになります。 function beforeFilter() { $this->Security->blackHoleCallback = "securityError"; $this->Security->requireAuth('login'); } function securityError() { die("security error!"); } トークンチェックをするアクションを複数指定するとき
CakePHP で SSL 接続を必須にするには以前書いた、Security コンポーネントを使う方法があります。 CakePHP1.2 Security コンポーネントを使用して SSL でのみアクセスを許可する しかし、単純に SSL 接続を必須にしたい場合は、Baker にある SSL コンポーネントを使うのが簡単です。 Component for forcing a secure connection (Articles) | The Bakery, Everything CakePHP 特定のアクションだけ SSL にしたい場合はそのアクションのメソッドに以下のように書きます。 class MyController extends AppController { var $components = array('Ssl'); function index() { $this->S
SSL Componentを使うと、http→https、https→httpの転送をやってくれるので便利です。 SSL Component 使い方 /* app_controller.php */ var $components = array( 'Secured.Ssl' => array( 'secured' => array( 'users' => 'login', 'store' => '*', 'post' => array('index', 'edit') ), 'autoRedirect' => true, // Set to false to temporarily disable this component ) ); 上の例だと user_controllerのlogin store_controllerの全てのaction post_controllerのindex
利用するのはSecurityコンポーネント。 CakePHPにもともと備わっているコンポーネントなので他所からのDLなどは一切不要です。 コントローラーに数行記述するだけ。 このお手軽さ。まずは、SSL接続を強制したいアクションのあるコントローラーで、Securityコンポーネントの使用を宣言します。 public $components = array('Security'); beforeFilter内に以下の記述を追加します。 ここではif文を使い、アクションがindexの時のみSSL接続が強制されるように設定しています。 コントローラー内の全てのアクションにSSL接続を強制したい時はこのif文は取り払って下さい。 public function beforeFilter(){ //indexのみSSL接続を強制 if ($this->action === 'index') { $t
マックをMountain Lionにしたせいか、 VirtualBoxをアップデートしたせいか、 ローカル環境の設定がおかしくなってしまっていた。。 つくったアプリからメールを送ろうとするとエラー。 php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution とかね。 でも他のページは表示はできてたから、こりゃVirtualBoxかCentOSの設定だなと。 Pingも飛ばなかった。。。あれー。ということで、週末ずっとググってました。 もうなにがなんだか分からなくなるので、 以前にやったこの設定はリセット。落ち着いたらまたやろう。 VirtualBoxでローカル環境つくる時に必要なお作法 ローカル環境作った時のことを思い出せ! •ファイヤーウォール(iptables)をオフにする。 •
最近、はてブを眺めていたら、面白いツールを紹介されていましたので、早速CakePHPで使ってみた、というレポートです。 これは面白い!! 自分の組んだPHPプログラムが、本当に丸裸。どこがボトルネックになっているか、一目瞭然です。 というわけで、早速ですがCakePHPも、このツールで解析してみることにしましょう。 とりあえず簡単に手順をまとめておきます。 環境によって適用方法が異なると思いますので、その辺は良きに計らってください。 1:xprofのインストール xhprofはpeclのプロジェクトです。 peclツールを使って自動インストールすることも出来るみたいなのですが、当方の環境ではphpizeでエラーが出るため、マニュアルインストールしました。 ▼pecl : xhprof http://pecl.php.net/package/xhprof コンパイル及びインストール方法は次の
早くも蚊に刺されました nakamura です。きっとおいしそうなんでしょうねぇ。分かる分かる。 今日は CakePHP 連載の 7 回目!CakePHP のキャッシュをファイルではなく memcached に保存する方法を紹介します。 memcached って? データやオブジェクトをメモリ上に保持する為のキャッシュサーバです。ファイルにキャッシュするよりも高速に動作し、PHP, Java, Perl 等を始めとするプログラミング言語や MySQL, PostgreSQL といった RDBMS など memcached を利用可能なクライアントアプリケーションはとても多岐に渡ります。 この辺りが詳しく解説してくれています。 memcached - Wikipedia 特集:memcachedを知り尽くす|gihyo.jp … 技術評論社 memcached をインストールする 今回は C
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く