我想在组件中加载Appcontroller方法。
这是我的Appcontroller
public function date_conversion($date = "11/06/13") {
$date_format = 'm/d/y';
$input_date = explode('/', $date);
return date('Y-m-d', strtotime($input_date[0] . '/' . $input_date[1] . '/' . $input_date[2]));
}
这是我的组件
public function getWeeklyData($start_date)
{
//AppController::date_conversion($start_date); // Not working
$appController = ClassRegistry::init('AppController');
$start_date = $appController->date_conversion($start_date);
echo $start_date;
exit;
--------
---------
--------
--------
return $final_data;
}
我试过这个
AppController::methodName()
它不能正常工作
由于
答案 0 :(得分:2)
这是完全错误的:
您严重绝对不知道您在设计模式或CakePHP的工作方式方面做了什么。如果您没有以任何方式正确使用它,为什么还要使用框架呢?代码告诉我你真的不知道为什么会有不同的东西,如控制器,模型或组件以及它们是什么。
我建议您在尝试实现应用程序之前重新开始学习MVC框架和设计模式的基础知识。如果整个应用代码看起来像您粘贴的代码,那么在一天结束时它只是不可维护的意大利面条代码。从这里开始阅读https://book.cakephp.org/2.0/en/getting-started.html并进行博客教程。这段代码和你对它的理解有很多不足之处,在这里详尽解释所有这些代码。
答案 1 :(得分:-1)
如果你有这样的AppController类: -
class AppController extends Controller {
public function callApp(){
return "This is App Controller and a non-static method";
}
public static function staticApp(){
return "This is a static method";
}
}
然后你可以在Component中调用它: -
<?php
App::uses('Component', 'Controller');
class FooComponent extends Component{
public function Foo(){
// For non static method
$appController = ClassRegistry::init('AppController'); // Get
reference of AppController
echo $appController->callApp();
echo "<br>";
// For static method
echo AppController::staticApp();
}
}