使用控制器类作为帮助程序或模型

时间:2014-10-15 15:42:35

标签: codeigniter

我有一堆控制器,即usersadminguest我在admin控制器上有大量功能,我希望在{users控制器上使用1}}。由于访问控制器意味着重定向它,我希望这种行为不会发生,所以问题是

  • 我可以使用辅助器/模型之类的控制器并加载它吗?加载它像助手/模型对我来说会更容易,因为有大量的控制器,我不想添加新文件。
我仍然是C.的新人。请指导我。

2 个答案:

答案 0 :(得分:1)

您可以创建将执行某些逻辑的辅助类,您可以在控制器或视图中调用它们。我不知道你是否想要它。 例如,我创建了一个名为Repository(repository pattern)的文件夹,我在其中实现了呈现菜单的逻辑:

 public class reposAccount
 {
    public static List<Sp_ShowMenuList_Result> ShowMenuList(int RoleID)
    {
            myEntities db = new myEntities();
            List<Sp_ShowMenuList_Result> ListShowMenu = db.Sp_ShowMenuList(RoleID).ToList();
            return ListShowMenu;

    }
 }

在视图上我只是称之为&#34;助手&#34;:

 if (HttpContext.Current.User.Identity.IsAuthenticated)
{
   //do some preparatory activities, then i call the helper:
    foreach (var obj in reposAccount.ShowMenuList(RoleId).Where(z => z.ParentMenu == null).OrderBy(z => z.MenuOrder).ToList())
    {
        @: <li>@Html.ActionLink(obj.MenuName, "Index", obj.Controler_Name)</li>
    }
}

相同的行为或方法,您可以在每个控制器上调用它们。

答案 1 :(得分:0)

您可以使用

将其作为普通模型或库加载

$this->load->library()

这里有一个你可能想看的SIMILAR QUESTION,你要找的答案是第三个。

<强> 注:

如果您使用的是CI3,则无效。如果您还阅读了评论,这会很有帮助。