laravel 5.4,在哪里放置控制器,模型,视图和路线?

时间:2017-09-30 22:12:45

标签: laravel view controller

通过了大量的laravel教程和示例,我在不同的目录中看到了带有控制器,模型和视图的源代码。

问题是,他们应该去哪里,如果他们被安置在不同的地方,系统(可能需要约定)如何运作?

E.g。 the official laravel quick-start projec将它们放入:

app/Http/Controllers/xxxControler.php
app/Http/routes.php
resources/views/xxx.blade.php
Cant find where it has put the models.

然而,simple laravel crud master tutorial将它们放在这里:

app/controllers/xxxControler.php
app/models/xxx.php
app/routes.php
app/views/xxx/create.blade.php
app/views/xxx/edit.blade.php

控制器

如果您查看5.4文档here,它说控制器应该进入app / Http / Controllers。

如果是这种情况,后一个例子是如何工作的(因为控制器文件在"错误" dir,我认为laravel,比如grails,依赖于约定优于配置)?

后面的示例目录似乎比官方位置更合乎逻辑,因为控制器与Http无关 - 它是应用程序逻辑的一部分。

模型

official documentation提到"模型通常位于应用目录"中。这意味着它们可以放在app / models中,这很好。

视图

不幸的是,官方文档说它们必须进入资源/视图。同样,根据上面的第二个例子,将视图,控制器和模型全部作为app的子目录放在一起会更合乎逻辑。使用这种合乎逻辑但非官方的结构是可能的,也是可取的吗?作为初学者,我很难找到模型,视图和控制器,因为它们放在3个不同的目录路径中,没有明显的逻辑。

路由 官方文档说路由应该在routes / web.php中。我还没有找到使用此约定的示例项目 - 我在app / routes.php和app / http / routes.php中看到过它们。假设可以将它们放在app下的随机位置,如何配置路由定义文件的位置?

1 个答案:

答案 0 :(得分:3)

对于Laravel版本^ 5.4

控制器应位于此目录

app/Http/Controllers/xxxController.php

模型应该在此目录中

app/xxx.php

视图应该在此目录中

resources/views/xxx.blade.php

路由应位于此目录

routes/web.php // for web routes
routes/api.php // for api routes

这些都是建议放置控制器,模型,视图和路线的地方。当然,您可以随意修改所有内容!

Laravel的旧版本为控制器,模型,视图和路径提供了不同的位置。检查文档的位置。

问题是你必须认识Laravel版本,因为Laravel在2011年和2016年之间经历了许多变化......

例如,您问题中的这个链接来自2013年,这是非常古老的。

我强烈建议您按照laracasts.com上的Laracasts教程进行操作