Laravel模型解析数组
我的数据库中有一个对象,我正试图在模型中检索该对象并进行解析以在blade模板中显示文本。我不太确定如何正确解析它。多谢各位Laravel模型解析数组,laravel,Laravel,我的数据库中有一个对象,我正试图在模型中检索该对象并进行解析以在blade模板中显示文本。我不太确定如何正确解析它。多谢各位 public function getStep1() { $step1 = $this->details()->get(); foreach($step1 as $step1) { $step1 = $step1->step_1; return $step1; } } 这让我得到了下
public function getStep1()
{
$step1 = $this->details()->get();
foreach($step1 as $step1)
{
$step1 = $step1->step_1;
return $step1;
}
}
这让我得到了下面的输出,我不知道如何解析。我尝试了$step1[0],但这只给了我一个[0]的答案
[["$50,000-$100,000","More than $100,000"]]
我的刀片模板就是这个
{{ $question->getStep1() }}
谢谢你的帮助
更新:
当我进行var_转储时,它会说我的“步骤”存储为字符串。这就是导致问题的原因吗?我仍然无法进入[]
array (size=9)
'id' => int 1
'question_id' => int 55
'step_1' => string '[["$50,000-$100,000","More than $100,000"]]' (length=43)
'step_2' => string '[["Step2-option1","Step2-option2","Step2-option3"]]' (length=51)
'step_3' => string '[["Step3-option2"]]' (length=19)
'step_4' => null
'step_5' => null
'created_at' => string '2018-10-03 12:29:05' (length=19)
'updated_at' => string '2018-10-03 12:29:05' (length=19)
您可以将结果附加到临时数组,然后返回该数组,而不是返回双数组,请检查示例代码:
public function getStep1()
{
$tempArr = [];
$steps = $this->details()->get();
foreach($steps as $step1)
{
$tempArr[] = $step1->step_1;
}
return $tempArr;
}
您的模板代码现在应该在我们现在构建的数组上迭代,因此需要foreach。如下所示:
@foreach($question->getStep1() as $step)
// do something with $step
@endforeach
$step1作为$step1将不起作用,因为它们是相同的变量名。将$step1作为$step执行。然后,如果$step是一个数组,则必须在其中执行另一个foreach循环以获取单个数组索引。使用刀片视图中的
代码更新您的问题
您是试图获取步骤列表还是仅获取步骤1?我不确定您的问题从这次更新中,我得到了错误“为foreach()提供的参数无效”。我只是想得到“(“$50000-$100000”,“超过$100000”)。谢谢。然后您可以使用$step1[0][0]和$step1[0][1]访问它
public function getStep1()
{
$steps = $this->details()->get();
$totalSteps = collect();
foreach($steps as $step1)
{
foreach ($step1 as $step)
{
$toalSteps->push($step);
}
}
return $totalSteps;
}