Symfony2入門で学習してハマったところ

基礎から学ぶSymfony2入門で学習していてハマったところ

を4章までをまとめました。

諸悪の根源?

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日追記

アノテーションを設定するときSymfonyでは

/**

*@Route hogehoge

*/

と記載するとき赤いアスタリスクがついていないと

「No route found for "GET~」

というエラーが出てはまります。

 

 

基本からしっかり学ぶ Symfony2入門

基本からしっかり学ぶ Symfony2入門