基礎から学ぶSymfony2入門で学習していてハマったところ
を4章までをまとめました。
- 諸悪の根源?
- consoleが最初使えなかった・・・
- デモアプリケーションのホームページが表示されなかった・・・
- フォームの基本でフォームの要素編で「Could not load type "text"」・・・
- フォームの入力値の受け取りのところで 「Call to a member function createView() on null」・・・
- まとめ
諸悪の根源?
Symfony2入門なのにinstallしてきたのがSymfony3.3.5だった。
これが一番大きいのかもしれない。
consoleが最初使えなかった・・・
理由:参考書には app/consoleと書いてあるが自分はbin/consoleでないとダメだった。
まず最初からこの調子でした。ちなみにcheck.phpなど入っていなかったので
諦めた。
デモアプリケーションのホームページが表示されなかった・・・
理由:本には127.0.0.1:8000でアクセスするように書いてあったが自分の場合は
Vagrantfileに記述したprivate_networkのipじゃないとダメだった。
単純に仮想環境を想定していないだけかも・・・
フォームの基本でフォームの要素編で「Could not load type "text"」・・・
理由:Symfony3ではフォーム要素の記述の仕方が違った
参考書によると
->add('name', 'text')
と書いてあるがSymfony3では
->add('name', TextType::class)
と記述しないといけないから。
ついでに
use Symfony\Component\Form\Extension\Core\Type\TextType;
を追加しないと使えるようにならない。
フォームの入力値の受け取りのところで 「Call to a member function createView() on null」・・・
回避:作成したprivate関数createInquiryForm()に戻り値を設置した。
そもそもFormオブジェクトからcreateView()を呼ぶ以前に
var_dump($this->createInquiryForm());
の結果がnullだった。
だからFormオブジェクトを戻り値にした。
まとめ
Symfony2入門と入門とうたっていますが、結構前提知識が
いるものだった。ただSymfonyは、あまり参考書がないので
重宝する参考書でもあります。
この先ハマったところがあったら追記していきたいと思います。
2018年8月4日追記
/**
*@Route hogehoge
*/
と記載するとき赤いアスタリスクがついていないと
「No route found for "GET~」
というエラーが出てはまります。