我有一个团队数组,并希望每个地方都显示团队名称。可以构建一个可以返回团队名称的全局函数,我从我的视图中调用该函数意味着ctp文件。
答案 0 :(得分:6)
please try this for west:
<?php
// controller name like app,users
// action name like getdata should be in controller
// and you can send parameter also
$output = $this->requestAction('controllerName/actionName/'.$parameter);
?>
答案 1 :(得分:3)
这有多种方法。我从你的描述中无法分辨的正是你在寻找什么。如果只是创建一个可在视图中访问的项目数组,我会把它放在app_controller.php中
var $teams = array('team1', 'team2', 'team3');
beforeFilter() {
$this->set('teams', $this->teams);
}
然后在您的视图中,您可以通过变量访问数组:$ teams
如果您只想在某些视图上调用团队,那么将此变量设置为“一切”可能不是一个好主意。你可以通过在app controller中设置一个函数来解决它。
function get_teams_array() {
$teams = array('team1', 'team2', 'team3');
return $teams;
}
然后组合一个将调用此函数的元素: 视图/元件/ team.ctp
<?php
$teams = $this->requestAction(
array('controller' => 'app', 'action' => 'teams'),
array('return')
);
/** process team array here as if it were in the view **/
?>
然后你可以从视图中调用元素:
<?php echo $this->element('team'); ?>
答案 2 :(得分:0)
您可以在/app/config/bootstrap.php文件中添加如下内容:
Configure::write('teams', array('team1', 'team2'));
然后你可以在任何地方获得该数组:
$teams = Configure::read('teams');
并使用它。
答案 3 :(得分:0)
在CakePHP 3. *中,您可以使用助手。
https://book.cakephp.org/3.0/en/views/helpers.html#creating-helpers
1 - 在 src / View / Helper :
中创建帮助器/* src/View/Helper/TeamHelper.php */
namespace App\View\Helper;
use Cake\View\Helper;
class TeamHelper extends Helper
{
public function getName($id)
{
// Logic to return the name of them based on $id
}
}
2 - 创建助手后,您可以将其加载到视图中
在 /src/View/AppView.php 中添加电话$this->loadHelper('Team');
:
/* src/View/AppView.php */
class AppView extends View
{
public function initialize()
{
parent::initialize();
$this->loadHelper('Team');
}
}
3 - 加载好帮手后,您可以在视图中使用它:
<?= $this->Team->getName($id) ?>