如何在控制器中创建函数并在cakephp 3.xxx的模板/视图中使用它
我需要在我的视图/模板页面中使用该功能 我的代码:如何在控制器中创建函数并在cakephp 3.xxx的模板/视图中使用它,php,cakephp,Php,Cakephp,我需要在我的视图/模板页面中使用该功能 我的代码: public function getAppNumber($id = null){ $aPPLICATIONINFO = $this->AppEstLto->APPLICATIONINFO->find('all', [ 'fields'=>['application_number'], 'conditions'=>['application_id'=>$id], 'l
public function getAppNumber($id = null){
$aPPLICATIONINFO = $this->AppEstLto->APPLICATIONINFO->find('all', [
'fields'=>['application_number'],
'conditions'=>['application_id'=>$id],
'limit' => 200
]);
foreach($aPPLICATIONINFO as $aPPLICATIONINFO){
$aPPLICATIONINFOx = $aPPLICATIONINFO;
}
return $aPPLICATIONINFOx;
}
您可以使用set()在视图中使用cookbook中给出的函数变量:
现在,您可以在视图中使用它:
获取应用程序号.ctp:
<?php
foreach($applicationArray as $application)
{
echo $application['application_number'];
}
?>
您应该在配置文件夹中的routes.php文件中执行类似操作:
Router::connect('/get-app-number', array('controller' => 'yourController', 'action' => 'get_app_number'));
这样,您就可以连接将用于查看的url。
您的操作对应并将数据发送到视图。
动作是控制器内部的函数,您在其中开发用于设置数据和变量。
将生成的段塞示例:
foreach($aPPLICATIONINFO as$aPPLICATIONINFO)
非常误导您的循环体在每次迭代中都会覆盖$aPPLICATIONINFO
的内容。然后返回它。它产生的结果与只执行返回端($aPPLICATIONINFO)
相同。该方法似乎是模型的一部分(它查询和获取数据)。在MVC模式中,控制器负责构建模型,而不是视图。我宁愿在控制器中获取数据并将其传递给视图。代码工作得很好,我只需要将其直接用于模板/view。不,代码工作得不完美。要在模板中使用结果,请尝试$this->set('info',$applicationinfo);然后在模板中尝试调试($info);是否需要从view.ctp文件调用getAppNumber()?是否将函数连接到视图?您应该在配置文件夹中的routes.php
文件中执行类似操作:Router::connect('/get app number',array('controller'=>'yourController','action'=>'get_app_number')代码>
Router::connect('/get-app-number', array('controller' => 'yourController', 'action' => 'get_app_number'));