4日目の続き。
フォーラムで検索すると同じエラーを出している人がいました。
Day 4 - PHP Fatal error
チュートリアルのソースがあるレポジトリを見よ、と回答にあったので見てみた。
http://svn.askeet.com/tags/release_day_4/
自動生成されるBaseQuestion.phpが違っていることが判明。となると自動生成の元になったconfig/schema.xmlが怪しい、と見比べてみると自分のと全然違う。symfonyのバージョンの違いのせいでしょうか。betaにした方が良かったかも、、と後悔しつつwgetでschema.xmlをダウンロードして自分のと置き換え。
$ symfony propel-build-model
すると今度はちゃんとBaseQuestion.phpにgetInterestedUsersが定義されていました。
ただ今度は
$ php batch/load_data.php
こちらでエラー。
PHP Fatal error: Uncaught exception 'PropelException' with message 'No connection params set for symfony'
データベースの名前が違うらしい。
前のschema.xmlを見ると以下のようになっていたので修正。
<database name="propel" defaultIdMethod="native">
$ symfony propel-build-sql $ mysql -u youruser -p askeet < data/sql/schema.sql $ php batch/load_data.php
SQLを実行するときにdefault句が変でつまずいていたのがなくなった。schema.xmlは2日目のコピペなのだがバージョンによって動かないのかもしれない。
http://askeet/frontend_dev.php/question/show/id/1
にアクセスして上部のツールバーからデータベースのアイコンをクリックすると、以前より実行されるSQL文の数が1つ減ったことがわかる。
wgetでschema.xmlを取得したため、チュートリアルのSame for the answersの部分をちょっとやってしまったことになる。
コードを修正する部分は修正して、”Add some test data in the fixtures”はdata/fixtures/test_data.ymlに書き加え、”Launch the population batch”で
php batch/load_data.php
を実行。ブラウザでチェックするとまたidが変わっていた点以外は問題なし。
“Create an alternate version of the title”の部分はすでに終わっている。
“Custom class”でlib/myTools.class.phpを作成。このディレクトリ下にあるファイルは自動的にロードされるらしい。
“Routing”で説明されているように英語圏のブログの多くはこんな感じのPermaLinkになっているが、日本語だと無理である。
http://askeet/frontend_dev.php/question/what-shall-i-do-tonight-with-my-girlfriend
そんなわけでこの部分は適当にやっておしまい。しかしこの調子だと本当に24日以上かかりそうです。。

symfonyチュートリアル実践【第4日目続き】
コメントはまだありません。
»
コメントはお気軽にどうぞ



