Laravel:接受在视图中调用模型函数?

时间:2013-08-21 06:20:37

标签: php laravel

在我的控制器中,我将一个数组返回到我的视图中,其中包含一个作者ID,该ID需要转换为该名称,另一个来自数据库的get,所以我想知道是否接受从我的视图中调用模型函数?

我要做的是将ID传递给从数据库收集数据的函数,并返回具有正确ID的作者姓名。

这就是我在视图中写的方式:

{{ User::getUserName($post['author']);  }}

最终结果是回显的全名。

2 个答案:

答案 0 :(得分:6)

这是可能的,但它是糟糕的设计。

在MVC中,控制器的作用是管理用户请求(当用户单击GUI元素以执行操作时,作为HTTP GET或POST请求接收)。其主要功能是调用和协调执行用户操作所需的必要资源/对象。通常,控制器将从模型层获取任务的数据,然后选择正确的视图,或在用户输入发生后操纵模型。

因此,通过直接从视图层调用模型,可以绕过控制器中包含的应用程序逻辑,这很麻烦(对于任何其他需要使用项目的开发人员来说都是意外的)。

正确的MVC方式:在输出视图的控制器操作中获取模型,让控制器将模型传递给您的视图。

答案 1 :(得分:1)

当然,如果可能的话,最好的解决方案是传递一个Post对象的集合或数组来查看而不是该数组。这将允许您使用Post和User之间的关系,并在您的视图中具有类似的内容:

{{ $post->author()->full_name }}

这是在MVC架构中做事的首选方式