繁体   English   中英

Laravel:是否可以在视图内部调用模型函数?

[英]Laravel: Accepted to call a model function inside view?

在我的控制器中,我将一个包含作者ID的数组返回到我的视图中,该ID需要与数据库中的另一个get一起转换为名称,因此我想知道是否可以从视图内部调用模型函数吗?

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

这是我在视图中的写法:

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

最终结果是回显的全名。

可能,但是设计不好。

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

因此,通过直接从视图层调用模型,可以规避控制器中包含的应用程序逻辑,这很麻烦(这对于必须与您的项目一起工作的任何其他开发人员来说都是意料之外的)。

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

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

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

这是在MVC架构中执行操作的首选方式

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM