※[追記]タイトルが内容とあってないので修正しました。 Webシステムを開発していると、「ログイン状態中にブラウザを閉じたら、その後ブラウザを起動してアクセスするとログイン状態を破棄」いうことをおこないたいケースはよくあるかと思います。 それをcakePHPではどのようにおこなうかという話。 cakePHP*1では、「core.php」の「Security.level」でセキュリティレベルを指定することが出来ます。 レベルは3種類存在し、「high」「medium」「low」。 このセキュリティレベルを「high」にしていれば、上述の問題は解決しますが「medium」ではブラウザを閉じても情報が残されたままです。 じゃあ、「high」にしたら良いじゃないという話ですが、この「high」はちょっと使えない子だったりすることもあり、「medium」にしたいケースが多々あります。 さて、じゃあ「
モデルでbegin()とかやってはいけない気がする。 Overloadableを継承してるので、メソッドが定義されていない場合は call__()がコールされる。 ベヘイビアとか登録してたらそっちが呼ばれるけど、通常は使わないと思うので データソースのquery()が呼ばれる。 query()内では、メソッドをテンプレートとして引数をバインドしてSQLとして呼ぶと思うので、 begin()とかやると、"BEGIN"というSQLがコールされる。 PostgreSQLだとまさにこれはトランザクション開始のコマンドなので 動作してるように見えると思われる。 でもね。データソースにはちゃんと begin() commit() rollback() っていうメソッドがあるからこっちを使うはず。 モデルのsaveAll()内でもそうしてる。 ということで、モデルにメソッドがないのが困ったけど、以下で解
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く