cakephpに関するメモ書き

今日CakePHPについて調べてたら、自分が知りたい情報があったのでメモ。

  • モデルの関連データが要らない場合、$this->Model名->recursive = -1 とすると、現在指定しているModel名(テーブル)のデータのみ取得する
  • HTMLヘルパーのdateTimeOptionTagで、表示した時点で今日の日付を選択済みにするには、selectedをnullに、showemptyをfalseに設定しておくとよい

だそうです。試してないけど、一応メモっておきます。使う予定はアリ。


書評:マネするマーケティング

マネするマーケティング
マネするマーケティング 岡本 吏郎

あさ出版 2004-02-20
売り上げランキング : 91270

おすすめ平均 star
starマーケッティングの思想書
star感情マーケティングの一歩先を行く本!
star岡本先生は神田グループでは貴重です。

Amazonで詳しく見る by G-Tools

岡本 吏郎さんの考え方などを学ぶために買った本です。マネするマーケティングという題名からして刺激的です。何事もですが、基本的にオリジナルを考え出すほうが難しく、今までにあるいろんなアイデアを拝借して、それにオリジナリティを加えて使うという話。ですが、なぜかマーケティングとなるとオリジナリティのないものを作ってしまったり、オリジナリティはあって注目されても購入までには至らない原因などが細かく書かれています。しかも、自分がやってしまいそうなものが(^^;)

マーケティングはサイト作成での読み手を掴むためにも非常に通じるところがあるので(というかサイトもマーケティングだけど)、結構読んでいますが、面白いアイデアとか閃きやすくなるので、マーケティング本はマーケティングしてない人でもオススメだと思います。特に岡本さんは辛口なので、気分だけ高揚させるええことだけ書いた本とは違います。

こういう視点こそ、ウェブデザイナーとかがもつべきだと思うんだけどなー。優秀な人は持っていると思います。
この本を読んだだけでイカすアイデアが3つ浮かんだので、育てていきます。


書評:ユダヤ人大富豪の教え

ユダヤ人大富豪の教え
ユダヤ人大富豪の教え 本田 健

大和書房 2003-06-19
売り上げランキング : 3940

おすすめ平均 star
star一見の価値あり。
star見ないと後悔する良本
starユダヤ人大富豪の教え

Amazonで詳しく見る by G-Tools

この本はだいぶ前から持っていたのですが、久々に読み直しました。本田健さんの本は数冊持っていて、セミナーCDも持っているのですが本もCDも語り口が柔らかく、とても読みやすい内容になっています。どうやったら幸せな成功ができるかに焦点を当てているので、非常にタメになります(どうやったら金持ちになれるかではない)。

自分に言い訳ばっかりせずに努力しろ!と厳しくいう本とかに比べると、人間は弱いものだからこそ、モチベーションを保てるように頑張って、ときどき自分を見つめなおして、幸せな成功をしましょうねという内容です。

この本を読むと、感謝の気持ちを忘れてしまっている自分に気付きます。「そうか、俺は自分の力だけで生きてるのではないし、それは今までもこれからもずっと続くことだ」と。ビジネスを行うにあたっても、感謝の心が大切で、自分を応援してくれる人たちのために頑張ろうという気持ちになります。

成功者のイメージって、こういう本を読んだ直後は明確にあるのですが、日常を送っているとだんだんその影響を受けてまた違った成功者のイメージになってしまいがちです。そしてその違った成功者のイメージは自分がなりたいと思うイメージではないのですが、気付かない間にすり変わっていたりします。なので、この本をときどき読み返すと、前に読んだときとは違う気付きがいっぱいあります。あー!そうだった!という感じなんですけど、でも思い出したというよりは洗練されたイメージを感じるようになります。

文庫本やマンガ本や図解本になっていたりするベストセラーなので、いい本なのはお墨付きですが、読んだことのない人はぜひ読んでもらいたい本ですね。きっと感謝の気持ちを思い出させてくれます。


PEAR::Mail_Queueにハマる…

CakePHPでとあるツールを作成するようになっている(CakePHPは自分で選んだのだけれど)ので、その機能の一部である部分を作りこむために、PEAR::Mail_Queueを使おうとしたのです。PEAR::Mail_Queueは、まあ一言でいうとメールを非同期で送信してくれるやつです。メールを送る予約だけしておいて、あとの時間でシステム側が勝手にメールを送ってくれるという代物です。まあ勝手にといっても自分で設定しないといけませんが。

Mail_Queueについては以前に使ったことがあったので安心して使おうとしていたのですが、見事にハマりました。CakePHPでまずMailQueueComponentを作ろうとしたわけです。で、putするところまでは特に苦労なしにいけました。しかし、なぜかキューに入ったメールを取り出せない…。sendMailsInQueueだったかな?それを使ってもダメだし、whileでキューがあるだけgetして回す方法をしようとしてもダメでした。う〜ん、原因不明。

環境がXAMPPなので、メール送信環境がちゃんとないからか?と思いましたが、PEAR::Mailで作ったMailComponentを使ってメールを送信したらちゃんと送ることができたので、メール環境ではない。やはりPEAR::Mail_Queueか!このライブラリはあんまり評判もよくないみたいなので、もうこうなったらMail_Queueっぽい動きをするものを自作してやろうかなとかまで考えてしまいます。でもモデルに依存する形のコンポーネントになるから、あんまりよくないですね。もしくはPEAR側をhackするか…。こちらのほうがあんまり自信ないなぁ。


CakePHP:Modelに$primarykeyは必須?

CakePHP 1.1の話。

AテーブルとBテーブルの外部キーのみからできるCテーブルを作成して(多対多の関係で)、そこにプライマリキーは必要なかったのでModelファイルで$primarykeyを設定していませんでした(DB的には両方ともAテーブル、Bテーブルの外部キーの両方をプライマリキーに設定してた)。

それで、データをインサートするところで、ちゃんとインサートがされたか自動的にチェックされるらしく、そのときに実行されるSQLが

SELECT COUNT(id) AS count FROM Cテーブル WHERE id = Bテーブルにインサートされたid

となってしまい、これはどうしたことだ!と。Cテーブルにはidカラムはないので、当然エラーになるわけです。

// CテーブルのModelクラス
$primarykey = null;

とかやってみたけど、やはり違うようだし、まあフレームワークだから決まりは守れということかと観念して、Cテーブルにもidを設定しました(まったく使わないのだけれど)。まあ色々と勉強になりますね〜。便利だけど癖が強いのがフレームワークだから、あんまりイライラせずにじっくり取り組みます。