【发布时间】:2018-05-27 21:30:12
【问题描述】:
我将数据存储在 meta_key 和 meta_value 列中。
是否可以将 meta_value 分配给 meta_key,以便可以像下面这样访问它?
{{ $responsedata->q1 }}
控制器:
$getProjectLeads = RequestProjectLeads::where('r_id', '=', $rid)->get();
$getRequestData = RequestData::where('r_id', '=', $rid)->get();
$requestData = $getRequestData->toArray();
return view('requests.home')->with('responsedata', $requestData);
数组:
array:2 [▼
0 => array:6 [▼
"id" => 5
"r_id" => 15
"meta_key" => "q1"
"meta_value" => "zippyzoo"
"created_at" => "2017-12-13 22:34:19"
"updated_at" => "2017-12-13 22:34:44"
]
1 => array:6 [▼
"id" => 6
"r_id" => 15
"meta_key" => "q2"
"meta_value" => "asdf"
"created_at" => "2017-12-13 22:34:19"
"updated_at" => "2017-12-13 22:34:19"
]
]
【问题讨论】:
-
无需进入 foreach,您可以尝试通过在查询 RequestData::where('r_id', '=', $ 末尾添加 ->toArray() 将 getRequestData 转换为数组摆脱)->get()->toArray();或保持查询相同,只需将结果转换为数组 $data = getRequestData ->toArray();
-
这将它踢出一个更简单但类似的数组
array:1 [▼0 => array:6 [▼"id" => 1 "r_id" => 15 "meta_key" => "q1" "meta_value" => "test"...这是否有助于我在刀片中访问我想要做的事情? -
问题是我缺乏对数组访问的理解。可能无法显示 meta_key = q1 的 meta_value?我试图避免
{{ $responsedata->get(0)->meta_value }}并仅使用 meta_key 值作为定位器 -
你不会回避这样的约定,或者像这样:
$responseData->first(function($obj) { return $obj->meta_key == "qa"; });问题是你不能使用数组访问器,因为你不关心索引,但你关心的价值。这使事情变得复杂,因为您需要一个函数来遍历数组并根据给定值返回嵌套数组。没有数组访问器。 -
@Ohgodwhy 我更新了我的问题,以更好地反映刀片处理的预期结果,您可能已经回答了,但我不确定
标签: php arrays laravel laravel-5.5 laravel-blade