ハマったので備忘録。
YIiでサイトのデザインをthemeで作る際に罠はっけーーん!

themeでデザインする際にデフォルトのデザインように2カラム、1カラムとわけたりするよね。
で、その際にスキャッフォールディングで生成されたlayoutファイルみたく
$this->beginContent(‘application.views.layouts.main’);

$this->endContent();
で囲む事になる(デフォルトのviews/layouts/column2.phpとか見るといいですよ)。
で、今回怒ってるのはbeginContent()の引数がアレです。罠です。
上の例だとprotected/views/layouts/main.phpを見ちゃいますから、themeを使うなら変えないとダメですよね。
これの変え方がワカランチンでした。。。
※今回だとwebroot/themes/hoge/views/layouts/main.phpを読み込みたい、とします。

色々試してみました。
$this->beginContent($this->theme->basePath.’/views/layouts/main.php’);
とか
$this->beginContent( dirname(__FILE__).’/main.php’);
とか
$this->beginContent( ‘main.php’);
とか
$this->beginContent( ‘main’);
とかしてもダメ。
エラー出る。

「なんなねん!」

と、一時間位悩んだ結果、動いたのは下記の引数でした。
$this->beginContent( ‘/layouts/main’);

もーよーわからんわ(´・ω・`)どういうパス指定やねん・・・

関連する記事

  1. アクション毎にCSSとかJavaScriptを使う Yii Framework触るぜ日記(8)
  2. 携帯表示その1 Yii Framework触るぜ日記(5)