tohokuaikiのチラシの裏

技術的ネタとか。

Symfony1.4の色々とメモ

自分用メモです。

既に存在するテーブルに対してDoctrineを使う

既存テーブルに迷惑を掛けないようにする。

config/doctrine/schema.yml

にテーブル定義をyamlで書く。検索できればいいからとりあえずこんな感じで。

Member:
  columns:
    id:          { type: integer,     notnull: true, primary: true, autoincrement: true }
    name:         { type: string(255), notnull: true }
    email:        { type: string(255), notnull: true }

その次にFindする。

Controller内で

<?php
$member = Doctrine::getTable('Member')->findOneByName($name);

とかかしてやる。

テンプレートにJSONを渡したい

Controllerで

action.class.php
<?php
$this->sample[] = array(
        'mid' => $mid,
        'point' => $point,
        'name' => $member_name,
    );

とかして与えた変数をテンプレート側でJSON展開したい場合。

Templateで

indexSuccess.php
<script>
var csvuploadAllData = <?=json_encode($sf_data->get('sample')->getRawValue());?>
</script>

View.xmlをモジュール単位で効かせる。

apps/(app_name)/modules/(module_name)/config/view.yml を作成して、テンプレートごとにレイアウトの有無を切り替えたり。

(view.yml)
default:
  has_layout:     true
  layout:         my_admin

indexSuccess:
  has_layout:     false

Configを使って設定値をアレしたい。

設定

Configを設定できるのは2か所

config/app.yml
apps/*****/config/app.yml

moduleの下に配置できるかと思ったけどできない。

all:
  foo:
    bar: 

取得

上記の場合、

sfConfig::get('app_foo_bar')

というようにする。

深さは2段階で調整すること。たとえば上記のymlの場合

sfConfig::get('app_foo')

ではNULLが返ってくる。