我只想从我的数据库的options
表中获取网站的标题和标语
我尝试从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上搜索答案,但我不知道该怎么做。我也可以在所有控制器上创建构造函数并获取数据,但是我必须在每个视图中传递变量,这使得代码看起来很糟糕!
为此提供任何标准解决方案?
PS:播种当我将此代码添加到AppServiceProvider.php
或迁移工作中时不起作用。我必须从AppServiceProvider.php
删除此代码才能迁移和播种!
答案 0 :(得分:1)
你可以使用try catch吗?
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';
}