リンク †以下、分類した… †
Formヘルパーでvalueにマルチバイト †あるビューにて、テキストフォームにデフォルト値をセットしたかったので、 echo $form->input('title', array('size'=>40, 'value'=>$title)); と言う記述をした。 ここで、$titleには文字列が入るが、 $title = "hoge"; とした場合、テキストフォームに"hoge"が記入された状態で表示されるが、 $title = "ほげ"; とすると、値が入らない… textフィールドだけじゃなくて、textareaでも同じだった。 これは仕様? ソースを追い回して、どこで"ほげ"がlostしているかを探す… で、やっとh()関数に"ほげ"を渡したところで消えていることまで突き止めた。 あとちょっとだ。 と思ったところで時間切れだったんだが、別の環境で同じソースを動かしてみたら、ちゃんと動いた… orz 今度は環境か… データベースにつながらない †database.php に正しい接続情報をセットしていても、以下のメッセージが出てつながらなかった。 環境は Cake 2.2.4 Cake is NOT able to connect to the database. Database connection "Postgres" is missing, or could not be created. 原因は、PostgreSQL の PDO ドライバが入ってなかったこと。 確認は、下記操作。 $ php -i | grep PDO PDO PDO support => enabled PDO drivers => どうして入ってないのか原因を追いかけると、PHP の configure 時に --with-pdo-pgsql=shared と、shared 指定をしながら、実際には実行時に使うようにもしてなかったため。 改めて、shared を外してコンパイルして、確認。 # php -i | grep PDO PDO PDO support => enabled PDO drivers => pgsql, sqlite PDO Driver for PostgreSQL => enabled PDO Driver for SQLite 3.x => enabled 解決。 なお、このエラーメッセージは、DB 接続のユーザやパスワードが間違っていた場合でも同じのが表示されるので注意。 |