[英]Laravel: accessing collection values inside blade template
因此,我确实像建议我一样,为了提高性能用一个查询替换了多个查询,现在的问题是我收到以下消息错误:“ ErrorException(E_NOTICE)Undefined index: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
看来他们倒退了吗? 我怎样才能解决这个问题?
更改
$globals = Globals::all()->pluck('name', 'value', 'intValue');
至
$globals = Globals::all()->keyBy('name')->toArray();
和
{{ $globals['appName']['value'] }}
{{ $globals['appName']['displayName'] }}
{{ $globals['appName']['intValue'] }}
将可用
如果您这样收藏
$globals = Globals::all()->pluck('value', 'name');
您将最终获得['name' => 'value']
元素的数组
因此,您可以在视图中像{{ $globals['appName'] }}
一样访问它
例如,假设您将插入另一个数据库记录
DB::table('globals')->insert([
'name' => 'configName',
'displayName' => 'Something',
'value' => 'config value',
]);
您应该能够在视图中仅使用一个名称来访问此属性
{{ $globals['configName'] }}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.