0

我对 Codeigniter 和 MVC 还很陌生,我在找出实现这一目标的最佳方法时遇到了一些麻烦。

我需要构建一个应用程序,允许用户申请一些机构提供的各种程序。然而,这些机构都必须在应用程序中占有一席之地,但他们希望彼此独立——而不是为所有程序共享一个应用程序页面。例如,机构 1 希望网站的一部分仅查看并应用于他们的计划,而机构 2 希望网站的一部分仅适用于他们的计划。

实现这一目标的最佳方法是什么?我应该为每个机构创建一个单独的控制器吗?

例如sitename.com/inst1/apply, sitename.com/inst2/apply

但是,这些控制器中的每一个基本上都具有相同的创建/读取/更新/等功能。在这种情况下,最佳做法是什么?谢谢!

4

4 回答 4

1

您可以创建文件夹以正确使用您的功能。这广泛用于 API。

例如。您可以拥有这样的文件夹结构。

- application/
    - controllers/
        - inst1/
            apply.php
        - inst2/
            apply.php

这样,您将拥有类似的 URL 端点。

index.php/inst1/apply
index.php/inst2/apply
于 2012-10-24T22:45:32.883 回答
0

只需构建一个控制器,并制作一个标志来区分它们。在视图文件中,您可以检查此标志来决定天气以显示程序并应用或不应用。

您的网址将是这样的:

sitename.com/inst/1/apply, sitename.com/inst/2/apply

注意:您也可以用文字更改网址中的数字;更好的seo

于 2012-10-25T05:11:15.243 回答
0

我认为你是对的,你会为每个机构创建控制器,允许你改变你为每个机构提取的数据。视图可以共享,因为所有功能都在控制器/模型中,这是 MVC 最重要的方面之一,能够分离这些层并在不需要重复的情况下重用您需要的东西。如果您将页面设置为模板,您甚至可以提取不同的模板来提供特定于机构的视图。

于 2012-10-24T20:33:02.257 回答
0

为此,您可能希望使用相同的控制器,而是通过将您的函数传递给您可以在此处阅读的不同 uri 段来处理变化 。在我的 codeigniter 应用程序中,我喜欢在每个控制器或模型中保留特定的功能。所以它可能看起来像:

sitename.com/my_controller/my_function/my_argument

控制器中的函数如下所示:

public function my_function($argument){
//stuff goes here
}

您当然可以使用您的路由文件来使 url 看起来像您想要的那样。

于 2012-10-24T22:29:10.903 回答