Symfony2

バルクインサートの実装

Entityを介さず、直接SQL(INSERT文)を生成して実行する。 MySQLのバルクインサート(複数データを一つのINSERT文で登録)を実現。 INSERT INTO table VALUES (a1, b1, c1), (a2, b2, c2), (a3, b3, c3); ↑こういう処理を行わせるのが目的。

ファイルアップロードをテストコードでチェック

use Symfony\Component\HttpFoundation\File\UploadedFile;

アップロードファイル(画像)のバリデーションチェック

アノテーションでチェック可能。 画像のタイプ(mime-type)をチェックする場合 Entity側 view側(_form_fields.html.twig)

Symfony2で新機能を追加するときに必要になったファイル

ふと確認してみたら以下の通りだった(多い!)。 Controller Type View Entity Factory Repository routing.yml(各リンクのURLと、そこで呼ばれるContollerやfunctionの定義) services.yml(Factory等の場所を定義) ↓git statusで確認した内容。 # src/c1644/A…

PostUpdateでハマる

ファイルアップロードの編集(一度アップロードされたものの更新)処理で、 PostUpdateが動かず、アップロードし直しができずに困っていたが、 以下のように強引にプロパティを変更することで動いた。 (imageOriginNameというプロパティにnullをセット)

"There is no active transaction"

現象 対処法 補足 例外発生の原因 routing.ymlで未定義のURLにリダイレクトさせようとしていた

テンプレートにデータが渡っていないエラー

An exception has been thrown during the rendering of a template … Parameter "id"がおかしいというエラーが吐かれ。 "" givenと言われ。 $entity->getId()をしてみたらNullが返ってきた。 getName()なども試しみたらことごとくNull…⇒中身がきちんと取れ…

Symfony2.3にバージョンアップしようとしたら…

$ php composer.phar install …としたところ、以下のような状態に。 lib-icuのバージョンが問題で、php54-intlをインストールすれば解決した。 $ brew install php54-intl ※PHP5.4をHomebrewでインストールしたので、今回もHomebrew経由でインストール。以下…

ControllerでRequestパラメータをセットする

例えば、Formオブジェクトに 「stage_id = 3」 を渡したい場合、Controllerで $id = 3; $this->getRequest()->attributes->set('stage_id', $id); とすればOK。

routingに関するエラー

No route found for "POST /admin/worlds/1/areas/3": Method Not Allowed (Allow: GET, HEAD, PUT) routing.ymlの対象となるパス情報のrequirementsを以下のように修正(POSTを追加)。 requirements: _method: PUT|POST

Formの独自Labelを定義する方法

{{form_label(form.namedokuji, '独自な名前')}} 「Formの独自Labelを都度テンプレートに定義するのが面倒(効率的な方法無いの?)」 と思って本家のドキュメントを読んでみたら、 「テンプレート側でform_label()使え」(都度定義しろ) とのことだった。http:…

ファイルアップロード機能

ファイルをアップロードする アップロード先のディレクトリも作成する データをセットする ファイルのアップロード先のパスもセットする データのセットに失敗したら、アップロード済みのファイルを削除する ファイルをアップロード try { データのセット; }…

Entityのアノテーションでハマる

Repositoryに定義した独自メソッドが呼ばれない Undefined method 'findAllWithAreasCount2'. The method name must start with either findBy or findOneBy! 対象のEntityのアノテーションを確認すると、 @ORM\Entity() ↑この状態だと、独自Repositoryの親…

PHP5.4のビルトインWEBサーバ&Symfony2

以下のSymfonyコマンドを打てばビルトインWEBサーバが起動。 $ php app/console server:run Apacheを入れなくてもアプリが動かせる!

Symfony2開発環境構築 -PHPUnit編-

PHPUnitのインストール その前にPEARをインストールする。 $ chmod -R ug+w /usr/local/Cellar/php54/5.4.15/lib/php$ pear config-set php_ini /usr/local/etc/php/5.4/php.ini $ pear config-set auto_discover 1$ pear install pear.phpunit.de/PHPUnit$ …

Symfony2開発環境構築 -PHP編-

Homebrewをインストール URL http://mxcl.github.io/homebrew/ 必要なもの Xcode Command Line Tools for Xcode インストール $ ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)" Gitもインストールされた! 2014-01-20追記 homebrewのインストー…