繁体   English   中英

Laravel:在刀片模板中访问集合值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM