スポンサーサイト

0

    一定期間更新がないため広告を表示しています


    • 2014.12.23 Tuesday
    • -
    • -
    • -
    • -
    • -
    • by スポンサードリンク

    Symfony2のdoctrine:generate:crudではまりやすいところ

    0
      久しぶりにここに記事書きます^^
      ついに!業務でSymfony2を使えることになりました!いえーい!!

      というわけで、さっそくdoctrine:generate:crudを使いまくってます。
      で、個人的にはまりやすいところをいくつかメモです。(書いておかないと次にやるとき忘れる…)

      ■Configuration formatはbundle自体のConfiguration formatに合わせる
      bundleのConfiguration fotmatをymlにしてしまったら素直にymlを選んだほうがいいです。
      一回ポンポンエンターキーを押してたら、bundleがymlなのにも関わらずannotationにしてしまい、あれこれググってもうまくimportさせることができませんでした。

      ■routingのauto updateは必ず失敗する
      そのため必ず手動でResources/config/routing.ymlの変更が必要(ymlにしてる場合)
      去年の12月のSymfony勉強会のハンズオンでも聞いてたのでそれほど焦らず(笑)

      ■update,deleteのHTTPメソッド
      まず、Tests/Controllerにできる機能テストスケルトンのコメントアウトを外してそのまま実行すると必ず失敗します。
      デフォの更新・削除画面をそのまま操作しても必ずエラーになります。
      generate:crudが吐き出すviewではupdateがPUT、deleteがDELETEメソッドになるように書いてある(hiddenでname="_method"が書かれている)にも関わらず、routingがどちらもpostと指定されているからです。
      これはわざとそうなってるのか、2.1.0のバグなのかわかりません。
      従って、generate:crudが終わったらまず、edit.html.twigとshow.html.twigを開いてPUT,DELETEのhiddenを消す、又はrouting側の指定をput,deleteに変更する必要があります。
      自動生成されるコントローラを見る限り、特にHTTPメソッドが変わることによって処理が分岐することはないので、私はPUT,DELETEのhiddenを消してpostで処理するようにしました。

      ■viewにHTMLタグが無い
      生成されたtwigテンプレート達に{% extends "::base.html.twig" %}{% block body %}{% endblock %}をコピペするお仕事をやるだけです。←なにか自動化できないものか…
      ちなみにバンドルごとに違うbasehtmlを使いたいときは::base.html.twigでなく
      src/Acme/DemoBundle/Resources/views/base.html.twig → AcmeDemoBundle::base.html.twig
      みたいな感じで参照できました。




      スポンサーサイト

      0

        • 2014.12.23 Tuesday
        • -
        • 19:21
        • -
        • -
        • -
        • -
        • by スポンサードリンク

        コメント
        コメントする








           

        PR

        calendar

        S M T W T F S
              1
        2345678
        9101112131415
        16171819202122
        23242526272829
        30      
        << April 2017 >>

        twitter

        selected entries

        categories

        archives

        recent comment

        • 結局CodeIgniter用汎用Modelクラス&汎用CRUDスクリプトを書きました
          プログラマー
        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
          よし
        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
          ななうぇぶ
        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
          よし
        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
          よし
        • WindowsのPCで開発するphperがxhprofを使う方法
          ななうぇぶ
        • WindowsのPCで開発するphperがxhprofを使う方法
          川本
        • [バッドノウハウ]Symfony2で別テーブルの集計項目を一覧に含めたいとき
          よし
        • Symfony Advent Calendar JP 2012 day 14 - vendorをcomposerで管理しているプロジェクトにcomposerを使わずにバンドルを追加したときのautoloadの書き方
          77web
        • Symfony Advent Calendar JP 2012 day 14 - vendorをcomposerで管理しているプロジェクトにcomposerを使わずにバンドルを追加したときのautoloadの書き方
          ktz

        recent trackback

        • HTMLの表(TABLE)のセル(TD)に斜線を引くjavascriptライブラリ slash.js 作っちゃいました
          常山日記
        • django対symfony 日本語メール送信(その1 symfony編)
          CPA-LABテクニカル
        • CodeIgniterでユーザー認証
          されどLAMPな日々
        • 久々にdjangoを最新版にしたらHTMLがエスケープされちゃった!!(解決済み)
          常山日記
        • FastCGIを諦めてmod_pythonを使う。Apacheのアップグレード
          サーバー用語集
        • さくらインターネット、sqlite3でdjango@CGI版を使う際の設定メモ
          常山日記
        • さくらインターネット スタンダードプランでdjango使ってる方、DBは?
          mitszoの日記
        • python多次元リストをsort(並べ替え)する方法?
          mitszoの日記
        • フォームから送信した値とrequest.POSTの挙動($_POST@PHPとの比較)
          Humming Via Kitchen
        • 日本語テキストをtruncate@django(Python全般にも??)
          常山日記

        recommend

        links

        profile

        search this site.

        others

        mobile

        qrcode

        powered

        無料ブログ作成サービス JUGEM