gpt4 book ai didi

cakephp - 将变量从元素传递到 CakePHP 中的 View

转载 作者:行者123 更新时间:2023-12-05 00:58:43 27 4
gpt4 key购买 nike

我有一个在多个 View 中使用的庞大数组,因此我将它存储在一个元素文件中并在需要时获取它:
element/select.ctp :

$districts = array(
__('Region A') => array(
__('district 1') => __('district 1'),
__('district 2') => __('district 1'),
__('district 3') => __('district 1')
),
__('Region B') => array(
__('district 4') => __('district 4'),
__('district 5') => __('district 5'),
__('district 6') => __('district 6')
)
);

我将它包含在 profiles/add.ctp 中:
echo $this->element('select');
echo $this->Form->Create('Profile');
echo $this->Form->input('district', array(
'options' => $districts
);

但是变量没有通过。我想知道如何从元素传递它?

最佳答案

元素不是执行此操作的正确方法。元素用于在多个 View 中多次渲染或显示类似的片段。您可以将变量从 View 传递到元素,但不能反过来。

我建议将数组放入您的 AppController 中,如下所示:

<?php

namespace App\Controller;

use Cake\Controller\Controller;
use Cake\Event\Event;

class AppController extends Controller
{
public function beforeFilter(Event $event) {
$this->set('districts', array(
__('Region A') => array(
__('district 1') => __('district 1'),
__('district 2') => __('district 1'),
__('district 3') => __('district 1')
),
__('Region B') => array(
__('district 4') => __('district 4'),
__('district 5') => __('district 5'),
__('district 6') => __('district 6')
)
));
}
}

?>

这样,每个 View 都会有变量 $districts用数组填充。

如果您需要在每个操作的基础上执行此操作,您可以在您的 AppController 中执行此操作:
<?php

namespace App\Controller;

use Cake\Controller\Controller;
use Cake\Event\Event;

class AppController extends Controller
{
public function beforeFilter(Event $event) {
$this->districts = array(
__('Region A') => array(
__('district 1') => __('district 1'),
__('district 2') => __('district 1'),
__('district 3') => __('district 1')
),
__('Region B') => array(
__('district 4') => __('district 4'),
__('district 5') => __('district 5'),
__('district 6') => __('district 6')
)
);
}
}

?>

然后将数组传递给您在 Controller 中需要它的每个 View :
<?php

namespace App\Controller;

class SomeController extends AppController
{
public function index() {
$this->set('districts', $this->districts);
}
}

?>

关于cakephp - 将变量从元素传递到 CakePHP 中的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32221274/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com