cakephp2.0 Appcontroller函数调用

时间:2012-11-24 05:35:56

标签: cakephp-2.0

我在cakephp appcontrollet.php文件中创建了一个函数。从那个id中重新审视该记录的详细信息 功能如下所述

function getDetail($id = null)  // to check that user is valid or not 
  {
    $data = $this->ModelName->find('first',array('conditions'=>array('ModelName.is_active'=>'Y','ModelName.is_deleted'=>'N','ModelName.primaryKey'=>$id)));
    if($data !=array())
    {
      // return true;
      return $data;
    } else {
      $data = array();
      return $data;
      //return false;
    }
  }

现在我想从任何控制器调用此函数来获取记录的详细信息,我将从Userscontroller,adminscontroller,marketscontroller等调用此函数,它将返回相关数据

我的问题是appcontroller应该如何知道请求来自哪个控制器以及哪个模型给用户?

任何人都可以帮我解决这个问题

提前致谢

1 个答案:

答案 0 :(得分:1)

将此功能添加到AppModel并使用相关模型从每个控制器调用它。该函数看起来像:

class AppModel extends Model
{
  public function getDetail($id = null) {
    $data = $this->find('all', array(
      'conditions' => array($this->name.'.id' => $id)
    ));

// ...

根据您从模型中的来电,它将自动使用正确的型号。这样的电话可能如下:

class UsersController extends AppController
{
  public $uses = array('User', 'Market');

  public function index()
  {
    // Fetch data from markets database
    $this->Market->getDetail($id);
    // Fetch data from users database
    $this->User->getDetail($id);

// ...

在这种情况下,模型市场将用于从数据库中获取详细信息。