2

管理者がスライダーのコンテンツをデータベースに保存できるようにするアプリケーションを作成し、ホームページにスライダーを含めたいと考えています。スライドのコンテンツをスライダービューに送信するだけのスライダー機能を備えたスライドコントローラーがあります。

そのコントローラー関数は次のとおりです。

public function slider()
{
    $slides = $this->Slides->find('all');
    $this->set('slides', $slides);
    $this->set('_serialize', ['slides']);
}

その関数のビューには、次のものしかありません。

<?= $this->element('slider'); ?>

次に、slider という要素ファイルを作成し、そこでスライドを処理します。URL /slides/slider に移動すると、スライダーは機能していますが、ルートまたはホームページに移動すると、スライダーは空です。要素に $slides 変数を保持していないようです。

ホームページ:

<?= $this->element('slider'); ?> // then the rest of the home page follows this.

では、変数を保持したり、ホームページにもスライダー ビューを表示できるようにするにはどうすればよいでしょうか。

4

2 に答える 2

2

変数はコントローラーから要素に送信されるのではなく、ビューから送信されます。

あなたができることは、次のようにコントローラーに変数を設定することです:

$this->set('myvariable','any value');

そして、cakephp 3 のドキュメントによると、ビューでは次のようにパラメーターを渡すことができます。

echo $this->element('helpbox', [
    "varToElement" => $myvariable
]);

ソース: https://book.cakephp.org/3.0/en/views.html#passing-variables-into-an-element

于 2017-01-24T05:07:31.850 に答える