CakePHP:使用主控制器中插件控制器的功能

时间:2013-04-20 01:06:01

标签: php cakephp cakephp-2.3

这应该很简单,但我花了一个多小时试图找出来,谢谢你的帮助。

我有一个CakePHP插件Usermgmt,控制器位于此处:

./app/Plugin/Usermgmt/Controller/UsersController.php

我正在尝试使用以下内容从我的一个主控制器调用该控制器中的函数userIdFromUsernameAndPassword()

$userID = $this->UsersController->userIdFromUsernameAndPassword( 'user@host.com','pass' );

我需要导入/包含/初始化才能使其正常工作?

我在我的文件顶部尝试了各种导入语句,例如App::uses('UsersController', 'Usermgmt.Controller');,但没有到达任何地方。

谢谢!

1 个答案:

答案 0 :(得分:2)

简答:使用OOP并扩展另一个控制器。还要了解MVC。你不应该在另一个控制器中使用控制器的方法,在CakePHP中这应该作为一个组件来完成。它们可以在控制器之间共享。 Check the CakePHP Book

此外,插件的名称和方法名称表明这是一个糟糕的插件。这听起来好像有人不知道CakePHP的Auth组件。再次,检查AuthComponent的书。 You want a custom authentication adapter

如果用户已登录,您可以通过调用$ this-> Auth-> user('id')来获取其ID。阅读关于Auth的章节。如果您想要正确完成用户插件,请查看:CakeDC Users