時事自考

時事ネタを中心に個人的な考察を上げていきます。

【プログラミング】CakePHPで論理削除のisUniqueを使いたい

CakePHPって使いやすいんでしょうか

CakePHPが使いにくいのか、それとも、システムの前任がアレなのかはわからないですが、かなりアレな感じで、指摘箇所の修正中に出るわ出るわ、ダメぽ箇所が。

なんとなく実装中にふぁっきんふぁっきん言ってるプログラマの心境が分かる気がしますわー。

まぁ、実際CakePHPってあんまり直感的じゃないんですよね。

マイフレームワークがデザインベースだと直感的に作れるので、なおさら使いにくいと感じるのかもしれませんが。

ユニーク制約は大事です

というわけで、CakePHPで論理削除でisUniqueを使いたいということで調べてみました。

といっても、ドンピシャというのは見つからなかったので、適当なソースを参考に。

結局、以下のような実装にしてしまいました。

$conditions = $query["conditions"];

if (!is_array($conditions)) {

   if (!empty($conditions)) {

       $conditions = array($conditions);

   } else {

       $conditions = array();

   }

}

$conditions[] = array($this->alias.".del_flg" => 0);

$query["conditions"] = $conditions;

return $query

まぁ、ザ、適当な感じの実装なわけですが、これでisUniqueも期待通り動いてくれました。

元となったBehavierはもっといろいろ書いてあったので、本当ならもっといろいろ書かないとダメなのかもしれませんが。