CakePHPの「$this->set()」の2つの引数にはそれぞれ配列を渡すことができる
CakePHP 1.2.1.8004を使用中。
今頃知ったんですが、$this->set()の2つの引数にarray()を渡せるんですね。
これは別に1.2からできるようになったとかじゃなく、1.1のころから既にできるようになってたものみたい。
例えば、
<?php //コントローラ $params = array( 'conditions' => array('Group.id' => $this->params['group_id']), 'recursive' => -1); $group = $this->Group->find('first', $params); $params = array( 'conditions' => array('User.name' => $this->params['name']), 'recursive' => -1); $user = $this->Group->User->find('first', $params); $this->set(array('group', 'user'), array($group['Group'], $user['User']));
<?php //ビュー debug($group['id']);
みたいな。
今まで「$this->set('data', compact('group', 'user');」ってやってたけど、こっちの方がビューの中がすっきりして良いかも。
追記 (2009/03/07 22:03:40)
やっぱり普通に「$group = array_shift($this->Group->find('first', $params));」ってやった方が良いか。
本を数冊、注文したよ。
2月9日に2冊、今日2冊、合計4冊注文しました。2月9日のほうは19日ごろ届くらしいです。
まずは2月9日に注文した本から。
Django×Python (LLフレームワークBOOKS)
- 作者: 露木誠
- 出版社/メーカー: 技術評論社
- 発売日: 2009/02/16
- メディア: 単行本(ソフトカバー)
- 購入: 10人 クリック: 129回
- この商品を含むブログ (36件) を見る
- 作者: 藤原克則
- 出版社/メーカー: 秀和システム
- 発売日: 2009/01/20
- メディア: 単行本
- 購入: 10人 クリック: 220回
- この商品を含むブログ (63件) を見る
今日注文した本はというと…。
Trac入門 ――ソフトウェア開発・プロジェクト管理活用ガイド
- 作者: 菅野裕,今田忠博,近藤正裕,杉本琢磨
- 出版社/メーカー: 技術評論社
- 発売日: 2008/09/18
- メディア: 大型本
- 購入: 23人 クリック: 233回
- この商品を含むブログ (88件) を見る
- 作者: Jeffrey E.F. Friedl,株式会社ロングテール,長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/04/26
- メディア: 大型本
- 購入: 24人 クリック: 754回
- この商品を含むブログ (82件) を見る
以上です。割とそれぞれ関連しあった本を注文した気がします(正規表現の本が若干浮いてますが、Djangoのurls.pyとかで使うし、関連してるよね!)。
あとこんなのも今日注文しました。
- 出版社/メーカー: 富士パックス販売
- メディア: ホーム&キッチン
- 購入: 6人 クリック: 47回
- この商品を含むブログ (6件) を見る
Djangoで「LookupError: unknown encoding: X-MAC-JAPANESE」ってエラーが出た。その解決方法。
問題
タイトル通り。「はじめての Django アプリ作成、その 2 ― Django v1.0 documentation」のAdminページにある「History」ってリンクをクリックしたらエラーが出た。
解決方法
$ cd /opt/local/lib/python2.5/site-packages/django/utils/ $ sudo vim tzinfo.py
以下のように修正。
try: DEFAULT_ENCODING = locale.getdefaultlocale()[1] or 'ascii' # ←この行をコメントアウトして DEFAULT_ENCODING = 'ascii' # ←この行を追加 except: # Any problems at all determining the locale and we fallback. See #5846. DEFAULT_ENCODING = 'ascii'
MacでDjangoを使うまでのメモ
Python
終了
メモする必要がないくらい簡単でした。ちょっとDjango ドキュメント ― Django v1.0 documentationのチュートリアルやってみます。
MacPortsでApacheとPHPとMySQLを入れ直したメモ
MacPortsの更新
$ sudo port selfupdate
MySQL
$ sudo port install mysql5 +server
自動で起動するように以下のコマンドを実行。
$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
MySQLの初期化コマンドを実行。
$ sudo -u mysql mysql_install_db5
パーミッションを変更。
$ sudo chown -R mysql /opt/local/var/db/mysql5/ $ sudo chgrp -R mysql /opt/local/var/db/mysql5/
my.cnf(MySQLの設定ファイル)の設定。
$ sudo cp /opt/local/share/mysql5/mysql/my-small.cnf /opt/local/etc/mysql5/my.cnf $ sudo vim /opt/local/etc/mysql5/my.cnf
書き込む内容は「my.cnfでよくやる設定メモ - bojovs技術日記」参照。
MySQLを起動。
$ sudo mysqld_safe5
rootのパスワードを設定。
$ sudo mysqladmin5 -u root password '(パスワード)'
パスワードが反映されているかログインして確かめる。
$ mysql5 -u root -p
こんな感じの表示になれば成功。
$ mysql5 -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.0.67 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
ちなみにmy.cnfを弄り直したりしてMySQLを再起動したくなったときは以下のコマンドを実行する。
$ sudo launchctl stop org.macports.mysql5 $ sudo launchctl start org.macports.mysql5
PHP
インストール
$ sudo port install php5 +apache2 +mysql5
いろいろ落ちてきて時間がかかる。
インストールが終わると以下のようなメッセージが表示される。
If this is your first install, you might want cd /opt/local/apache2/modules /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so
httpd.confにlibphp5.soの記述をしてくれるそうなので、この通りに実行する。
$ cd /opt/local/apache2/modules $ sudo /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so
Apache再起動
$ sudo /opt/local/apache2/bin/apachectl restart
Apache
httpd.confの編集
$ sudo vim /opt/local/apache2/conf/httpd.conf
mod_php.confを読み込む。
# PHP Include conf/extras-conf/mod_php.conf
ドキュメントルートを変更する(任意)。
DocumentRoot "/Users/(ユーザ名)/Sites"
Directory Indexの設定をする。
DirectoryIndex index.html index.php #「index.php」を追記。
設定ミスの有無をチェックし、Apache再起動
$ sudo /opt/local/apache2/bin/apachectl configtest $ sudo /opt/local/apache2/bin/apachectl restart
終了です。