0

我们决定将 CakePHP 用于登录系统和前端数据库 UI,因为在遵守其严格约定时所有的自动化,我知道 Codeigniter,并且使用 CI,您可以扩展系统控制器system/core/Controller.php以处理身份验证

class AdminController extends CI_Controller {

    protected $user;

    public function __construct() {

        parent::__construct();

        $this->load->model('AdminModel');

        $this->user = $this->AdminModel->user()->row();
        $data->user = $this->user;
        $this->load->vars($data);
    }
}

然后通过将其扩展为应用程序控制器,$user全局可用并且 AdminController 已经扩展了 CI_Controller。

class Admin extends AdminController {

    public function __construct() {

        parent::__construct();

    }

    function index(){

        //$user is global since it's extending AdminController

        $this->data['user'] = $user->someItem;

        //load view etc..

    }
}

我不确定这是否是使用 CakePHP 的正确方法,对于实现自动化的可扩展登录系统是否存在普遍共识/最佳实践?

提前致谢

4

2 回答 2

1

您可以AuthComponent::user()在需要详细信息或AuthComponent::user('id')需要特定字段的地方使用。

于 2013-01-12T07:17:29.080 回答
1

是的,你可以这样做。例如,这将起作用:

 class AppController extends Controller
     class CustomAppController extends AppController
         class BikesController extends CustomAppController

其实这是插件的实现,你应该看看这里:

http://book.cakephp.org/2.0/en/plugins.html

同样的事情发生在插件中,每个插件都有一个自定义的 PluginNameAppController ,所有插件控制器都将扩展它。

无论如何,看看插件可能会很有趣,因为项目中功能的明确分离。

于 2013-01-13T12:15:56.427 回答