Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel5.3对数据库进行查询并传递所有视图_Php_Laravel_Laravel 5_Laravel 5.3 - Fatal编程技术网

Php Laravel5.3对数据库进行查询并传递所有视图

Php Laravel5.3对数据库进行查询并传递所有视图,php,laravel,laravel-5,laravel-5.3,Php,Laravel,Laravel 5,Laravel 5.3,我想从数据库中获取一些动态数据,并将其传递给所有视图。我试着从互联网上举出一些例子,但在我这样的情况下,它们似乎不起作用 public function boot(){} 我无法进行数据库查询,只能传递硬编码的值。 我尝试过的另一种方法是基本控制器,但视图在访问变量时给了我错误 $query = DB::table('users')->first(); \View::share('user', $query); 任何拥有基于BaseController的解决方案的人都将不胜感激,如果我

我想从数据库中获取一些动态数据,并将其传递给所有视图。我试着从互联网上举出一些例子,但在我这样的情况下,它们似乎不起作用

public function boot(){}
我无法进行数据库查询,只能传递硬编码的值。 我尝试过的另一种方法是基本控制器,但视图在访问变量时给了我错误

$query = DB::table('users')->first();
\View::share('user', $query);
任何拥有基于BaseController的解决方案的人都将不胜感激,如果我遗漏了什么,请务必提醒我

您可以使用view composer。 视图生成器是在呈现视图时调用的回调或类方法。如果您有数据希望在每次呈现视图时绑定到视图,视图生成器可以帮助您将该逻辑组织到单个位置

您可以根据以下文档在

上找到更多详细信息:

有时,您可能需要与应用程序呈现的所有视图共享一段数据。您可以使用视图facade的share方法来执行此操作。通常,您应该在服务提供商的引导方法中进行共享调用

同样,作为该站点中的一个示例,您应该将其添加到您的服务提供商之一:

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        if (!app()->runningInConsole()) {
            $query = DB::table('users')->first();
            \View::share('user', $query);
        }
    }
}

它从启动时开始工作:

View::share ('variabelname', DB table first () etc etc)
然而,我遇到了一个问题:

如果删除表或删除表,然后运行迁移和种子,则会出现错误

找不到基本选项卡/视图


因此,在进行任何迁移刷新等操作之前,我必须从应用程序服务提供商处注释掉这一行。

在中的单例中注册查询并在需要时解决它不是更好吗?您能解释更多或提供任何参考吗。谢谢你也可以制作一个刀片模板并将其包含在其中。请提供一个使用数据库逻辑的参考。因为我正在查看它,它将硬编码的值传递给viewJust,并在viewComposer\uuu构造函数中包含模型函数。还有一个例子,请检查一下,我正在对数据库进行查询,我在一些文章中读到,启动方法是在启动之前调用的Eloquent@FaisalMehmoodAwan你是说这个解决方案不起作用?这也是查询生成器。雄辩不是一回事。在迁移时会调用boot方法。在新环境中,数据库表尚未迁移。对于第一次迁移,应在新环境中注释掉此代码,然后再次启用它。@Halfacht我已使用另一种方法进行了更新,在控制台中运行时不运行代码我已添加了
|app()->runningUnitTests()
。因为HTTP测试失败而没有