model-view-controller - Codeigniter Controller 间通信

标签 model-view-controller codeigniter controller

我是 MVC 的新手,CodeIginter。它不是让事情变得简单,而是需要为一个简单的应用程序编写大量代码。这些可能正在发生,因为我是新人。所以我对这件事没有什么困惑。任何形式的帮助表示赞赏。
1)方法写在一个 Controller 中,不能在另一个 Controller 类中访问。我必须为相同的功能编写一个新函数。

2)在none mvc面板中创建网站管理面板(后端),我们通常在一个新文件夹中创建它。这在 CodeIgniter 中是否可行?如果不是管理员(后端)呢?

最佳答案

让我们尝试消除您对此的一些疑问。

1)从另一个 Controller 调用 Controller 的方法是不可能的,顺便说一句。

Controller 应该从 URL 中获取操作(由 CI 路由到任务的正确 Controller ),并基于此决定需要调用哪个模型和模型的方法来详细说明请求的数据。

然后,模型将这个精化的结果交还给 Controller , Controller 反过来决定将这个结果传递给哪个 View 。

最终, View 被结构化以获取这些数据并显示它们。

所以,如您所见,从另一个 Controller 调用 Controller 的方法是无稽之谈,这就像转到一个页面并找到另一个页面一样;如果你想将请求传递给另一个 Controller ......好吧,有重定向。

如果您发现您在一段时间内拥有相同的功能,请三思而后行:

  • 什么是功能性?您是指 Controller “存档”中的“显示帖子”和 Controller “新闻”中的“显示帖子”之类的东西吗?它们的功能几乎不一样;他们也许可以共享 View 或模型,但仅此而已。
  • 对于与 URL 无关但涉及一些进一步阐述(在模型中可能是错误的)并且在 Controller 中调用的函数,您可以使用库来代替。想想“form_validation”库,它在 Controller 的方法中调用,但有自己独特的(和封装的)功能。使用“ session ”库或“身份验证”库

  • 2)创建一个管理面板最简单的事情是:创建一个“管理” Controller (然后可以访问 www.mysite.com/index.php/admin),并将所有管理操作放在那里,在它的方法中:create_page ()、edit_page()、manage_users() 等等。
    为了避免人们随意访问它,您需要构建一个身份验证系统,在其最简单和最简单的结构中,它可能是检查是否设置了 session (可能是在 __construct() 时间完成的检查)。

    但是您可以找到已经制作好的 Auth 库,例如 Ion Auth 或 Tank Auth(据我所知,这两个是最受欢迎的)

    希望现在事情变得更清楚了。如果您对模块化 HMVC 方法感兴趣,另请参阅 Interstellar_Coder 在此答案中的评论。

    关于model-view-controller - Codeigniter Controller 间通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7763615/

    相关文章:

    javascript - Backbone.js 模型与 View 集

    javascript - 按钮需要点击两次才能工作,我希望只点击一次

    asp.net-mvc - 什么时候应该在 ASP.NET MVC 中使用异步 Controller ?

    php - 使用 Symfony 路由到 Twig 免费 HTML 页面

    PHP 模板和外部 CSS

    php - 将数据传递给动态 CSS 文件?

    php - 如何抑制 codeigniter 中的通知错误?

    javascript - 从具有隔离范围的指令内的指令访问 Controller

    javascript - 在另一个 ng-route 页面上显示数组中的特定对象

    javascript - Node.js 中的 MVC/websocket