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测试失败而没有