symfony

submitで押されたボタンの判定

valueで判定すると条件がテキスト一致となって微妙なので、 // templateファイル <input type="submit" name="confirm" value="はい"> <input type="submit" name="confirm" value="いいえ"> // actionファイル if ($request->getPostParameter('confirm') == 'はい') { nameで判定 <input type="submit" name="yes" value="はい">

validateのymlにて入力エラー時の遷移

[validate]フォルダのhoge.ymlでチェックに引っかかった場合、 デフォルトでは以下の経路になります。 1. handleError()へ遷移 2. hogeError.phpを表示hogeError.phpがなければ、当然そこでもエラーになります。 hogeError.phpを書くか、handleErrorHoge()を…

郵便番号から住所を自動入力

templateに以下を付けるかymlに記述 <script src="http://ajaxzip3.googlecode.com/svn/trunk/ajaxzip3/ajaxzip3.js" charset="UTF-8"></script>symfonyならば、view.ymlでも可 InputSuccess: stylesheets: [mypage/import: {media: print,screen}] javascripts: ["http://ajaxzip3.googlecode.com/svn/trunk/ajaxzip3/ajaxzip3.js"]以下のようなフォー…

validateのfillinでXMLパースエラー

view.ymlにて、content-typeを以下のようにしている場合、バリデートでfillinを利用するとxmlパースエラーが発生します。 XML パースエラー: 実体の初めに XML またはテキスト宣言がありません。 view.yml http_metas: content-type: application/xhtml+xml…

全てのRequestパラメータを配列で取得

actionにて $this->getRequest()->getParameterHolder()->getAll(); ちなみに、以下のget,post別の一括取得は無理でした。 $this->getRequest()->getGetParameters(); $this->getRequest()->getPostParameters(); ※symfony 1.1以降なら使えるらしい[symfony …

preExecute()の変数を受継ぐ

$this付きの変数を宣言すれば、他のexecute()で受け継げるactions.class.php public function preExecute() { $this->aaa = 'aaa'; } public function executeIndex() { $this->bbb = $this->aaa; }indexSuccess.php <br /> 出力 aaa aaa[symfony 1.0.9]

templateでタイトル変更

sfContext::getInstance()->getResponse()->setTitle('タイトル');または $sf_context->getResponse()->setTitle('タイトル');[symfony 1.0.9]

パス補完(/付与)の罠

http://xxxx/kanto としてアクセスしたかったのだが、なぜかスラッシュが補完され、404エラーになる現象がおきた。 ※kantoは元々パラメータ扱い http://xxxx/kanto → http://xxxx/kanto/ 原因: 上記URLでアクセスできる箇所にkantoというフォルダを追加した…

Spycのエラー

YAMLの記述にミスがあると、以下のようにSpycのエラーが出ることがある Strict Standards: Creating default object from empty value in /usr/share/pear/symfony/util/Spyc.class.php on line 200Notice: Undefined property: stdClass::$data in /usr/sha…

propelのCriteria::CUSTOM

カラムに操作を加えてから比較したい時などは Criteria::LESS_THANやGREATER_EQUALの代わりにCUSTOMを使う例)date列(date型)の月と現在月を比べる $c->add(self::DATE, 'EXTRACT(MONTH FROM '.self::DATE.') ※CUSTOMを使わないと、テーブル名の文字列連結が…

YAMLのカラム調整の注意点

カラムの頭を合わせないと上手く値がとれません ※「:」の位置ではない以下はOK business: minutes: 0: 0 15: 15 30: 30 45: 45以下はNG ※[0]しか取れない business: minutes: ココがNG→ 0: 0 15: 15 30: 30 45: 45[symfony 1.0.9]

syck(高速YAMLパーサ)について

symfony1.0系では、PHPの拡張モジュールで「syck」がインストールされてたらそっちを優先的に使って、「syck」がなかったら、「Spyc」というライブラリを利用するようになっているらしい。 /etc/php.d/ xxx.ini syck.ini xxx.ini /etc/php.d/ xxx.ini syck.i…

レイアウトファイルの変更

例)layoutAAA.phpをレイアウトとして使用view.ymlにて xxxSuccess: stylesheets: [xxx/xxx/import: {media: print,screen}] layout: layoutAAA※デフォルトではlayout.phpが使用される[symfony 1.0.9]

フォームヘルパー

<form>タグ form_tag(action, オプション) ※defaultでmethod="post"となる<label>タグ label_for(フォーム部品で指定したID属性, ラベルの値, オプション)<submit>タグ submit_tag(value, オプション) ※nameを指定しないとcommitとなる(getの場合、?commit=value)<reset>タグ reset_tag</reset></submit></label></form>…

input_hidden_tagで配列を渡す(id、nameについて)

echo input_hidden_tag('year', '2009'); echo input_hidden_tag('month', '1'); echo input_hidden_tag('day', '1');defaultではid,nameともに第一引数になります。 <input type="hidden" name="year" id="year" value="2009" />配列を渡したい場合などは echo input_hidden_tag('date[year]', '2009'); とはできません…

表示するテンプレートを指定

アクション内で、setTemplate()を使います public function executeIndex() { $this->setTemplate('select'); modules └モジュール名 └templates - indexSuccess.php ←コチラではなく - selectSuccess.php ←コチラを表示 また、templates直下にフォルダを作…

タイトル、メタ情報をアクション内で動的に変更

1.タイトル変更 $this->getResponse()->setTitle('タイトル'); [実行時の表示] <meta name="title" content="タイトル" /> <title>タイトル</title>2.メタ情報変更 $this->getResponse()->addMeta('keywords', 'キー1,キー2'); $this->getResponse()->addMeta('description', 'ああああ,いいい'); [実行時の表示] <meta name="keywords" content="キー1,キー2" /></meta></meta>…