Laravel 5.4不兼容 - share()或set->错误?

时间:2017-01-27 00:16:10

标签: php laravel

在尝试调试很长一段时间后,我遇到一个错误,即变量似乎没有从数据库中检索值。

以下是我使用的代码:

use App\Setting;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\ServiceProvider;
use View;
use DB;
class SettingsServiceProvider extends ServiceProvider
{
    public function boot()
    {
        if(\DB::connection()->getDatabaseName() && Schema::hasTable('settings') && \DB::table('settings')->count()){

            $setting = new Setting;

            config()->set('website_desc', $setting->gets('general')->website_desc);
            config()->set('website_keywords', $setting->gets('general')->website_keywords);
        }
    }

    public function register()
    {
        // this approach worked before updating to 5.4
        view()->share('website_desc',config('website_desc'));

        view()->share('website_keywords',config('website_keywords'));

        //does not work either 
        // View::share(['website_desc' => 'values', 'website_keywords' => 'values']);
    }
}

我的App / setting.php看起来像这样

namespace App;

use Illuminate\Database\Eloquent\Model;

class Setting extends Model
{
    protected $fillable = ['name','attributes'];

    public function gets($name){

        $attributes = $this->where('name',$name)->value('attributes');

        if($attributes){
            return json_decode($attributes);
        }
        return false;
    }
}

任何人都可以看到任何不相容的内容吗?

这是表设置的数据库条目和列"属性":

{"website_name":"name","website_title":"title","website_desc":"description","website_keywords":"keywords","website_footer_text":"footer"}

我有点狡猾。

0 个答案:

没有答案