我在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应该如何知道请求来自哪个控制器以及哪个模型给用户?
任何人都可以帮我解决这个问题
提前致谢
答案 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);
// ...
在这种情况下,模型市场将用于从数据库中获取详细信息。