我在cakehp-appcontroller.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应该如何知道请求来自哪个控制器和用户的哪个模型?
有人能帮我解决这个吗
提前感谢
将此函数放入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将用于从数据库中获取详细信息。