如何从laravel刀片排序多个foreach

ztmd8pv5  于 2022-11-18  发布在  其他
关注(0)|答案(3)|浏览(123)

我有2个不同的表数据有order_id,我想排序它在laravel刀片foreach。
我的控制器:

$questions = Question::where('quiz_id', $quiz->id)->orderBy('order_id', 'asc')->get();
$explanations = Explanations::where('quiz_id', $quiz->id)->orderBy('order_id', 'asc')->get();

My Blade:(我想按order_id对这两个foreach进行排序)

@foreach($questions as $question)
  <p>{{$question->title}}</p>      
@endforeach
@foreach($explanations as $explanation)
  <p>{{$explanation->title}}</p>
@endforeach

我的结果:

<p>First Question</p>  //order_id: 1
<p>Second Question Question</p> //order_id: 3

<p>First Explanation</p>  //order_id: 2
<p>SecondExplanation</p> //order_id: 4

我想要的结果:

<p>First Question</p>  //order_id: 1
    <p>First Explanation</p>  //order_id: 2
    <p>Second Question</p> //order_id: 3
    <p>Second Explanation</p> //order_id: 4
qvsjd97n

qvsjd97n1#

在控制器中使用toArray()和array merge合并两个数组,并在控制器中对它们进行排序

5jdjgkvh

5jdjgkvh2#

如果有效,请尝试以下操作:

@for($i = 0; $i <= $questions - 1; $i++)
  <p>{{$questions[$i]->title}}</p>
  <p>{{$explanations[$i]->title}}</p>    
@endforeach

或者使用jsondecode()将问题和解释转换为数组,然后:

@for($i = 0; $i <= $questions - 1; $i++)
    <p>{{$questions[$i]['title']}}</p>
    <p>{{$explanations[$i]['title']}}</p>    
@endforeach

只有当问题和解释的数量相同时,这才有效。

8yoxcaq7

8yoxcaq73#

如果在解释中有一个问题id,那么你可以加入表,你可以很容易地得到你想要的。
或者也许这东西对你有用。

@foreach($questions as $qKey => $question)
   @foreach($explanations as $aKey => $explanation)    
   @if($qKey == $aKey)
      <p>{{$question->title}}</p>
      <p>{{$explanation->title}}</p>
   @endif
   @endforeach
@endforeach

相关问题