通过了大量的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下的随机位置,如何配置路由定义文件的位置?
答案 0 :(得分:3)
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教程进行操作