【问题标题】:Laravel 5.6 - Code In view - best practiceLaravel 5.6 - 代码视图 - 最佳实践
【发布时间】:2018-11-28 11:54:42
【问题描述】:

我是 Laravel 框架的新手,我发现在我的许多观点中,我需要有类似的代码,如下所示。我确信这不是最佳做法。有人可以告诉我什么是最佳实践方法吗?

<?php 
use App\Song;
use App\Music;
$songArtist = Song::find('5b0a6a779a892025b869f552')->Artists()->get();
?>

<div class="form-group row">
...

</div>

然后我可以使用 $songArtist 变量...注意,我在后端使用 MongoDB。

【问题讨论】:

  • 一开始你不应该把逻辑放到视图中。而是将逻辑放入控制器中。
  • 您似乎错过了控制器的用途。 $songArtist 应该在控制器中定义/检索,并作为控制器方法返回值的一部分传递给视图。

标签: laravel laravel-5.6


【解决方案1】:

您应该阅读 MVC 或模型-视图-控制器架构。关于 Laravel 是否是 MVC 框架有很多争论,但在这种情况下,我们假设它使用上述架构。

您提取数据/逻辑的方式通常由模型处理。控制器将处理将数据传输到视图 (html) 中的方式。最后,视图将用作用户界面。这应该使您的代码更清晰和有条理。

一个典型的例子是这样的:

控制器

use App\Song;
use App\Music;

function getArtist()
{
   $songArtist = Song::find('5b0a6a779a892025b869f552')->Artists()->get();
   return view('myhtml')->with('songArtist', $songArtist);
}

查看

<div class="form-group row">
   <p> {{ $songArtist}} </p>
</div>

【讨论】:

  • 实际上,在MVC中,模型应该处理逻辑。控制器是传输层(从模型中检索数据并将其传递给视图)
  • 感谢您提供更好的定义!将尝试改写我的答案
  • 感谢您的解释。
猜你喜欢
  • 1970-01-01
  • 2012-01-13
  • 1970-01-01
  • 2015-01-17
  • 1970-01-01
  • 2021-07-03
  • 2016-03-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多