鉴于cakephp调用函数

时间:2010-08-10 07:21:41

标签: cakephp cakephp-1.3

我有一个团队数组,并希望每个地方都显示团队名称。可以构建一个可以返回团队名称的全局函数,我从我的视图中调用该函数意味着ctp文件。

4 个答案:

答案 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) ?>