【发布时间】:2020-08-21 16:53:56
【问题描述】:
所以我要做的是创建一个FAQ 手风琴,但使用@foreach 循环而不是复制和粘贴整个列表。我的控制器代码如下所示:
public function faq(){
$faqs=array(
'questions' => ['question1','question2','question3'],
'answers' => ['answer1','answer2','answer3'],
'counts' => ['One','Two','Three']
);
return view('frontend.pages.faq')->with($faqs);
}
这是我希望达到的目标:
@foreach($questions as $question && $answers as $answer && $counts as $count)
<div id="accordion">
<div class="card card--faq mb-2">
<div class="bdv-btn card-header" id="heading{{$count}}">
<h5 class="mb-0">
<a class="btn btn-link w-100" data-toggle="collapse" data-target="#collapse{{$count}}" aria-controls="collapse{{$count}}">
{{$question}}
</a>
</h5>
</div>
</div>
</div>
<div id="collapse{{$count}}" class="collapse" aria-labelledby="heading{{$count}}" data-parent="#accordion">
<div class="card-body bg-light">
{{$answer}}
</div>
</div>
</div>
@endforeach()
如果是 $counts 变量,我不使用 $key 的原因是我希望实现一、二、三,而不是 1、2、3。
上面的代码当然是正确的。实现这一目标的最佳方法是什么?有没有可能?
【问题讨论】:
-
你不能真的像那样做
@foreach()。您可以执行嵌套的@foreach循环,或@for循环,例如@for($i = 0; $i < count($questions); $i++),然后$questions[$i]将是question1,而$answers[$i]将是answer1等。如果您的所有数组都有效长度相同,但我不能 100% 确定您要做什么。 -
是的,我想做类似的事情,我尝试了
@for循环但出现错误。如果我使用@for循环,$faqs 数组应该是什么样子? -
几乎和你现在一样,但你的数组键不应该是变量:
$questions => ['question1','question2','question3'],应该只是'questions' => ...:$faqs = [ 'questions' => ['question1','question2','question3'], 'answers' => ['answer1','answer2','answer3'], 'counts' => ['One','Two','Three']];(不能真正发布代码块,但你得到这个想法。另外,不要混合语法;使用array()或[],不能同时使用) -
糟糕,可变部分是我将编辑的问题中的错误。是的,这可能是因为这个数组语法错误,我之前遇到了一个错误。我会尝试一下,然后让你知道它是否有效。
-
这能回答你的问题吗? Two arrays in foreach loop - 发现这个重复项,似乎与您遇到的相同,只是在基本 PHP 而不是 Laravel 中。但是逻辑是一样的:)
标签: arrays laravel loops variables foreach