Php 如何在Laravel中设置全局变量(而不影响迁移)?

Php 如何在Laravel中设置全局变量(而不影响迁移)?,php,laravel,laravel-5,eloquent,laravel-5.4,Php,Laravel,Laravel 5,Eloquent,Laravel 5.4,我只想从数据库的选项表中获取网站的标题和标语。 我尝试从AppServiceProvider.php获取它,但当我删除所有表并运行php artisan migrate时,它显示了表不存在的错误。 我也尝试了Session,但最后,它使用了旧的AppServiceProvider.php方法。它可以正常工作,但当我们安装应用程序并运行迁移时就不行了!这就是我的AppServiceProvider.php了解我到底想做什么的样子 public function boot() { $site

我只想从数据库的选项表中获取网站的标题和标语。 我尝试从AppServiceProvider.php获取它,但当我删除所有表并运行php artisan migrate时,它显示了表不存在的错误。 我也尝试了Session,但最后,它使用了旧的AppServiceProvider.php方法。它可以正常工作,但当我们安装应用程序并运行迁移时就不行了!这就是我的AppServiceProvider.php了解我到底想做什么的样子

public function boot()
{
    $site_options = array();

    $site_title = Options::where('option_name','site_title')->first();
    $site_options['site_title'] = $site_title?$site_title->option_value:'Site Title';

    $site_tagline = Options::where('option_name','site_tagline')->first();
    $site_options['site_tagline'] = $site_tagline?$site_tagline->option_value:'A Simple website!';

    view()->share('site_options',$site_options);
}

我正在到处寻找Stackoverflow的答案,但我不知道该怎么办。我还可以在所有控制器上创建构造函数并获取数据,但是我必须在每个视图中传递变量,这会使代码看起来很糟糕!如果我将此代码添加到AppServiceProvider.php中,那么是否有标准的解决方案?PS:seaking不起作用,迁移也不起作用。我必须从AppServiceProvider.php中删除此代码,以便迁移和种子

你能试一下吗

try {
    $site_title = Options::where('option_name','site_title')->first();
    $site_options['site_title'] = $site_title->option_value;
} catch (\Exception $e) {
    $site_options['site_title'] = 'Site Title';
}

您必须迁移表和种子数据是的,但是当我从AppServiceProvider.php.woooo获取数据时,任何包含php artisan的命令都不起作用!我怎么能这么笨,不使用Try-Catch-block!谢谢你,伙计!不是最优雅的-您可以查找它抛出的特定异常类并捕获它,以防出现不同的问题,这使得调试变得困难。@AdarshSojitra p.s.如果这解决了您的问题,请随意将答案标记为correctDone@蝙蝠哈利迪!