0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

🍰【CakePHP2】エレメンツをデフォルトのapp/View/Elements以外のディレクトリから呼び出す

Last updated at Posted at 2020-01-28

環境

PHP 7.2.21
CakePHP 2.10.18

やりたいこと

Elements以外のディレクトリにエレメンツテンプレートを置いた場合や別Appにあるエレメンツテンプレートを呼び出したい

やったこと

cdコマンドと同じ指定を使うことでデフォルトである「app/View/Elements」以外の別階層を指定できる

※CakePHPの設計思想は**「設定より規約」(convention over configuration)**に賛同しているのであまり使いどころはないかもですが

同じAppの別ディレクトリのエレメンツテンプレートを使用

test/app/View/ から test/app/View/Form/default.ctp を呼ぶ

test.ctp
<?php
    $elementsDir = '../../View/Form/default';
    // 通常
    echo $this->element($elementsDir);

    // 変数渡しがある場合
    echo $this->element($elementsDir, [
        'var'  => 'hoge',
        'var2' => 'fuga',
    ]);



    // もちろん変数を使わずそのまま呼び出しも可能
    echo $this->element('../../View/Form/default');
?>

別Appのエレメンツテンプレートを使用する場合

test/app/View/ から test_2/app/View/Elements/form.ctp を呼ぶ

test.ctp
<?php
    $elementsDir = '../../../../test_2/app/View/Elements/form';
    // 通常
    echo $this->element($elementsDir);

    // 変数渡しがある場合
    echo $this->element($elementsDir, [
        'var'  => 'hoge',
        'var2' => 'fuga',
    ]);
?>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?