This behavior is intended for letting you order models like pages in a book in a the same way that the treebehavior works, with the difference that there is only one level (all the pages are siblings). It includes moveUp, moveDown, moveTo, sortBy, isFirst, isLast and off course inserts itself into saves and deletes to keep the lists correct. It does also have the option of sorting an entire table
No new features should be added, without having their own tests - which should be passed before committing them to the repository. One tab will be used for indentation. So, indentation should look like this: <?php // base level // level 1 // level 2 // level 1 // base level ?> <?php // base level // level 1 // level 2 // level 1 // base level ?> Or: $booleanVariable = true; $stringVariable = "m
複数の関連モデルの同時登録の方法を調べていて、save()に、$fieldListという設定があることを知りました。 http://book.cakephp.org/ja/view/75/Saving-Your-Data 例えば、usersのgourp_idという項目はユーザ変更不可なのだけど、usersのedit画面にデータをPOSTするときにgroup_idを追加して書き換える・・・というようなハッキングへの対策なのですが、 この機能、あると知らなかったのでbeforeSave()に自前で入れてました (^^;) 公式機能使用に変更。 (1/29 17:22) saveAllに関する記載について、訂正UPしました フィールド指定はホワイトリスト方式。 単独のモデルに対してsave()する場合の例。 app/controllers/users_controller.php - if ($
これはみんなは知ってることなんだろうなぁと思いつつPOST。 僕は少々気付くのに時間がかかりました。 問題 paginateでbindModelしてもうまくいきません (><) 回答 paginateでbindModelを使うときはbindModelの引数にfalseを渡しましょう $this->Model->bindModel($bind, false); $this->paginate = array( "Model" => array( "conditions" => $conditions, "limit" => 30, "order" => array("Model.created" => "ASC"), ), ); $lists = $this->paginate("Model"); 解説 bindModelの第2引数はクエリを投げた後にbindをリセットするかどうかのフラグで
CakePHP関連で、多分、特に初期で一番悩んだのが「ACL関連」 自己の「悩み履歴」「解決策メモ」のまとめです。 そして、まだまだ不満 ^^; あるので・・・今は保留ですが、 今作ってるモノの基礎できたら、検討予定です。 特にSQL負荷関連。。 ACL導入編 ACL:ファイル側 $this->Auth->authorize の設定は? - 趣味の延長線 CakePHPにACL入れました - 趣味の延長線 CakePHPのACLが難しい理由 - 趣味の延長線 aros_acosのシェル追加でワーニング - 趣味の延長線 管理画面設定 ACLによるcontroller/action以外の権限設定 - 趣味の延長線 ACLによる管理画面アクセスの制御 - 趣味の延長線 管理画面のベースRoute設定 - 趣味の延長線 設定追加の場合 モデル追加した場合のACL設定追加方法 - 趣味
First, put exception_notifier.php on app/controllers/components in your CakePHP application. Second, put qdmail.php on app/controllers/components too because excpetion_notifier.php depends on qdmail.php. Then, add the following code in whichever controller you want to generate error emails (typically AppController). (Change “abc@example.com” to the recipient’s mail address) <?php class AppControll
Authコンポーネントによる認証は、通常はusersのusernameとpasswordの照合で行うので、この2項目の登録が必須*1ですが、 携帯の固有IDの登録のみで認証を通す方法もありました。 (追記:1/20 22:32 id:ockeghemさんからのご指摘を受けて、IPチェックの必要性について追記しました。) まず、前提として、usersが以下のような内容になっているとします。 mysql> SELECT id, name, username, password, mobile_id FROM users WHERE id=2\G *************************** 1. row *************************** id: 2 name: Cake username: password: mobile_id: eecca936b0ef58b
Formヘルパーのinputメソッドを使うと、labelで括られた項目名と、入力フォームが自動的に出力されますが、 そこに「 * 必須」とか「6文字以上12文字以下」のように付記を入れる方法。 $options[‘before’], $options[‘between’], $options[‘after’]のいずれかを指定する。 出展:http://book.cakephp.org/ja/view/189/Automagic-Form-Elements#options-before-options-between-options-separator-a-191 基本的な使い方は、上記の記事ままですが、 $options[‘after’]に入力した内容は、特に何のタグでも括られずに出力されています。 echo $form->input('username', array( 'label'
CakePHPの便利すぎるプラグインであるDebugkitが色々と機能追加されてたので、今の最新版でどうなっているか画面キャプチャをベースに解説します。thechaw.comにある最新ソースだとid:yandodさんがリクエストしてた「Viewにセットした変数とかヘルパーとか全て表示できるように」というのが、Variablesパネルに加わりました(2009/5/29のコミットで)。 基本的には、下記からZIPダウンロードしてください http://github.com/cakephp/debug_kit/downloads (現在の最新版はVersion 1.1) http://thechaw.com/debug_kit/versions 追記 上記のzipはリリース版です。最新の機能を使いたい場合は下記からファイル名の日付が最も新しいZipダウンロードしてください。 http://git
New CakePHP 5.2 Chiffon. Faster. Simple. Delicious. What's new in 5.2 The migration guide has a complete list of what's new in 5.2. We recommend you give that page a read when upgrading. A few highlights from 5.2 are: New "counter_cache" command New "nativeuuid" database type Error handling customization using methods in "ErrorController" Helper method for generation importmap for JavaScript files
たとえ簡易なものでも、CMSだったらファイルのアップロードくらいはしたいな、ってことでCakePHP用のファイルアップロード用コンポーネントのfileHandlerを使ってみた。 http://www.reversefolds.com/articles/show/filehandler ちなみにアップロードはできても、削除はできないのでその辺は自前でヨロ。 使い方は、CakePHP Users in Japanの通り。 http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=397&forum=9 これ、アップロード毎に、暗号名のついたディレクトリをつくるのか。 うー、ディレクトリがいっぱいになってしまう。 まあ、便利なのは確かなので、とりあえずこれで行く。 でも、ファイルを沢山アップしたいときもあるので、その時のためにJavaScri
今までさほどシビアにキャッシュについて考えてこなかったのですが、ここらでキャッシュについてまとめてみます。 まずView系のキャッシュのうち代表的なものを。 element ( & requestAction ) キャッシュ Viewキャッシュ Html Cache Helper 3は、Bakeryに掲載されているMatt氏作成のヘルパーです。初回アクセス時にHTMLファイルを生成するため、以後PHPすら使われません。 多少の制限事項がありますので、それについては、後述。 下に行くほど(1→2→3)キャッシュの威力が大きくなります。 以下順番に見ていきましょう。 1.element ( & requestAction ) キャッシュ Viewをelement単位でキャッシュしていく方法です。 ヘッダーやフッター、メニューバーやHTMLのheadなど、使い勝手は良いでしょう。 記
画像のアップロード&リサイズ処理などは割とよくある処理でかつ面倒なものです。その処理を簡単にやってくれる Imageビヘイビアの紹介です。CakeFest で紹介された Media Plugin が高性能なので、メディアプラグインを使うのがいいのかもしれませんが、以前から Image ビヘイビアに関していつか使い方をまとめようと思っていたので紹介します。 参考サイト:ActAs Image column behavior (Articles) | The Bakery, Everything CakePHP Baker で紹介されていた Image ビヘイビアです。このビヘイビアはアップロードされた画像をサムネイル作成、リサイズ、複数のバリエーションのサイズの画像を作成してくれます。またモデルを find すると画像のパスを返してくれます。 作成される画像は、webroot/img/[Mo
1.2系で追加されたAuthComponentは、認証関連の処理を一手に担ってくれる強力なコンポーネントですが、 AuthComponentのパスワード暗号化。登録注意点。CakePHP1.2b - CPA-LABテクニカル http://blog.ne2ma2.com/archives/161 等で紹介されているように、パスワードが自動で暗号化されるために注意が必要です。 上記のサイトでは暗号化の処理の注意点、暗号化される値の事前の算出方法などが紹介されていますが、今回は暗号化自体をしない方法はないかを探ってみました。 暗号化の回避方法 AuthComponentのソースを追ってみたところ、独自の暗号化処理を組み込める仕組みが用意されていました。 AuthComponentのauthenticateプロパティに、hashPasswordsというメソッドを持つオブジェクトをセットすれば、暗
ブラウザを閉じた後でも自動的にログインできるようにログイン・フォームに「次回から自動的にログイン」「次回からログインを省略」「Remember me」などのチェックボックスが備わっているケースを良く見かけます。AuthComponentとCookieComponentを使って実装してみます。AuthComponentのページで説明した例の続きとして説明いたします。 その1では、Authenticationにある方法を紹介します。 自動ログイン機能とは 自動ログイン機能とは、ログインが必要なページにもユーザー名やパスワードの入力なしでアクセスできる便利な機能です。ログイン時に「次回から自動的にログイン」にチェックしてログインすると自動ログインが有効になります。クッキーが使えるブラウザのみ対応。 自動ログインの仕組み 「次回から自動的にログイン」にチェックしてログインしたユーザーのブラウ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く