php - 多个重复查询 - Laravel

标签 php mysql laravel eloquent

我首先展示在我的 Controller 中编写的代码:

public function __construct(Utility $utility)
{
 $league = $utility->checkDomainController();
 view()->share('league', $league);
 $this->league = $league;
}

public function getDashboard()
{
 return view('dashboard.dashboard', compact('activities'));
}

现在我想在 Controller 中存在的方法的所有 View 中共享$league。 ( $league 仅包含一个查询)。

但现在我面临的问题是,查询与包含的 View 主视图的数量重复。这里仪表板是主视图。因此,现在如果主视图中包含 7 个 View ,则 $league 上的查询将执行 7 次。以下是图片:

dashboard.blade.php 中包含的 View 图片 Picture of views included in dashboard.blade.php

查询被重复的图片 Picture of Queries getting duplicated

有什么解决办法吗?有更好的方法来处理这个问题吗?

最佳答案

一些解决方案向您开放。

一种解决方案是缓存查询。仅当您的 $league 数据不经常更改时才有效。

$league = Cache::remember('users', $minutes, function () {
    return $utility->checkDomainController();
});

另一个解决方案是使用 View Composer。仅当呈现该特定 View 时才会调用它。因此,如果您包含一次,它就会渲染一次。

View::composer('leagues', function ($view) {
    //
});

在此处了解有关 View 编辑器的更多信息:https://laravel.com/docs/5.4/views#view-composers

关于php - 多个重复查询 - Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42393919/

相关文章:

php - MySQL 行选择

java - Android-通过邮件登录mysql获取特定数据

php - 在 MySQL 中通过单个查询获取今天、本周、本月和今年的数据?

php - 在 Headless(无 GUI)机器上运行 Laravel Dusk

php - 如何从具有类编号的表中提取数据?

javascript - 通过 jQuery AJAX 设置和获取 PHP 变量

php - sql查询后的if else语句

PHP 数据库查询没有及时完成?

php - 未找到基表或 View : 1146 Table 'xyz.testimonials' doesn't exist (SQL: select * from `testimonials` )

php - Laravel 5 添加 nusoap