所以我确实像建议我那样,用一个查询替换了多个查询以提高性能,问题是现在我收到以下消息错误: ” ErrorException(E_NOTICE) 未定义的索引:appName“
首先我的迁移,以便您可以看到数据结构:
Schema::create('globals', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('displayName');
$table->string('value')->nullable();
$table->integer('intValue')->nullable()->default(0);
$table->timestamps();
});
DB::table('globals')->insert([
'name' => 'appName',
'displayName' => 'Nombre de la aplicación',
'value' => config('globals.appName'),
]);
这就是我收集全局变量的方式:
$globals = Globals::all()->pluck('name', 'value', 'intValue');
$view->with('globals', $globals);
我想按“名称”及其相应值访问刀片服务器模板中的数据,如下所示:
{{ $globals['appName']['value'] }}
这是我做完之后得到的:{{dd($ globals)}}
https://i.imgur.com/IK4IsX4.png
看来他们倒退了吗?我该如何解决?
答案 0 :(得分:0)
更改
$globals = Globals::all()->pluck('name', 'value', 'intValue');
到
$globals = Globals::all()->keyBy('name')->toArray();
和
{{ $globals['appName']['value'] }}
{{ $globals['appName']['displayName'] }}
{{ $globals['appName']['intValue'] }}
将可用
答案 1 :(得分:0)
如果您选择这样的收藏
$globals = Globals::all()->pluck('value', 'name');
您最终将获得['name' => 'value']
元素的数组
因此您可以在视图中像{{ $globals['appName'] }}
一样访问它
例如,假设您将插入另一个数据库记录
DB::table('globals')->insert([
'name' => 'configName',
'displayName' => 'Something',
'value' => 'config value',
]);
您应该能够在视图中使用仅一个名称的访问该属性
{{ $globals['configName'] }}