【问题标题】:codeigniter: one controller several actionscodeigniter:一个控制器几个动作
【发布时间】:2015-08-16 19:30:47
【问题描述】:

我正在使用 codeigniter。我目前正在研究我的路线和控制器。 上周,我探索了 symfony2,我喜欢一些东西:

class DefaultController extends Controller
{

    public function indexAction()
    {
        return $this->render('LVIndexBundle:Default:index.html.twig');
    }

    public function servicesAction()
    {
        return $this->render('LVIndexBundle:Default:services.html.twig');
    }

    public function shoppingAction()
    {
        return $this->render('LVIndexBundle:Default:services.html.twig');
    }

在控制器中,每个动作都会渲染一个视图。

我想在 codeigniter 中做同样的事情 -> 获得几个导致不同视图的函数/动作。

我是 Codeigniter 的新手。到目前为止,我了解到 1 个控制器 = 1 个视图。 我想获得 1 个控制器 = 多个页面的多个功能。否则,那将是很多页面。

非常感谢您的帮助!

【问题讨论】:

  • 我第一个使用框架的方法是 Codeigniter,但在探索了 Symfony 的世界后,我立即将我的项目迁移到了它上面。几个月后,我意识到我在项目中遇到的许多问题在 CI 中解决的问题会更大。 Symfony 基于强大的 OOP 模式基础(以“最先进”级别实施)为您提供更多功能和灵活性。

标签: php codeigniter symfony frameworks


【解决方案1】:

根据我的经验:

在 CI 中,一个 controller 可以有多个 view php 文件

ex(函数 indexAction 作为控制器函数):

public function indexAction()
{
   $this->load->view('header');
   $this->load->view('content');
   $this->load->view('footer');
}

【讨论】:

  • 我知道一个函数可以获取多个视图。
  • 我的问题是如何在控制器中获取多个功能:第 1 页、第 2 页、第 3 页...
  • 你有公平的instruction 如何创建页面。可以得出您从 Symfony 展示的类似系统的结论。
【解决方案2】:

在 Symfony 和 Codeigniter 中,控制器只是可以容纳多个方法的类。被调用的方法(在 Symfony 中称为 Actions)是决定哪些视图必须被渲染的地方。 Symfony 和 CI 控制器之间的主要区别之一是 Symfony 使用的路由。路由使 Symfony 比 CI 更灵活。

take a look for an explanation of CI controllers

附言Symfony 比 CI 先进得多。我想建议你 Symfony :-)

【讨论】:

    【解决方案3】:

    每个控制器应该有一个视图绝对不正确。甚至像验证表单这样简单的事情 - 您将根据验证是否通过调用不同的视图。

    强烈建议您逐步阅读 codeigniter 手册中的教程。这将回答很多问题并且非常实用。

    【讨论】:

      猜你喜欢
      • 2014-04-13
      • 2011-01-02
      • 2011-09-23
      • 2017-12-11
      • 2011-08-28
      • 1970-01-01
      • 1970-01-01
      • 2010-09-30
      • 1970-01-01
      相关资源
      最近更新 更多