【问题标题】:Codeigniter join multiple controllersCodeigniter 加入多个控制器
【发布时间】:2017-04-19 10:08:35
【问题描述】:

我正在寻找在多个控制器中使用控制器功能的最佳方式/解决方案 - 在一个管理界面中使用多个应用程序。

换句话说:我需要在 3 个子页面中使用一个子页面(用户):

控制器:

  • eshop-settings.php
  • web-settings.php
  • 另一个设置.php

所有控制器都有自己的功能和接口。

admin -> controllers -> eshop-settings.php 包含子页面/功能:

  • 传输:/admin/eshop-settings/transport/
  • 价格:/admin/eshop-settings/prices/
  • 用户: /admin/eshop-settings/users/(tab.all-users,tab.users-permissions)
  • user_edit

admin -> controllers -> web-settings.php 包含子页面/功能:

  • 页面:/admin/web-settings/pages/
  • 组:/admin/web-settings/groups/
  • 用户: /admin/web-settings/users/(标签。所有用户,标签。用户会话)
  • users_edit

...等等。

所有控制器都有子页面“users”但不是所有功能(fe.tab.all-users)和“user_edit”,

是否可以在 Codeigniter 中加入控制器或将部分控制器添加到另一个控制器?

或者我需要创建“用户”函数并将它们调用到彼此的控制器和他的接口。

谢谢

【问题讨论】:

标签: php codeigniter controllers


【解决方案1】:

控制器应该只调用服务并将数据传递给这些服务、接收数据并发送给视图。也许也可以捕获异常。

将您的业务逻辑从控制器中取出,并为共享功能创建一个服务类。

然后你可以这样做:

$svc = new UserService($dbConnection);
$user = $svc->getUserByEmail('coder@work.com');

【讨论】:

  • 您应该将逻辑从控制器中取出并放入库中。然后所有控制器使用相同的库和相同的代码。
  • 感谢您的建议。对于这种情况,使用库似乎是最好的解决方案。
猜你喜欢
  • 2013-06-27
  • 2012-03-18
  • 1970-01-01
  • 1970-01-01
  • 2011-11-06
  • 2011-09-08
  • 2011-08-30
  • 2011-04-16
  • 1970-01-01
相关资源
最近更新 更多