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;
    }
  }

现在我想从任何控制器调用此函数以获取记录的详细信息,就像我将从用户控制器、管理员控制器、市场控制器等调用此函数一样,它将返回相关数据

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

谁能帮我解决这个问题

提前致谢

4

1 回答 1

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);

// ...

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

于 2012-11-24T09:55:48.203 回答