无法在 Laravel 的双 foreach 循环中对数据进行排序

Posted

技术标签:

【中文标题】无法在 Laravel 的双 foreach 循环中对数据进行排序【英文标题】:Unable to Sort data in dual foreach loop in Laravel 【发布时间】:2020-05-05 20:37:14 【问题描述】:

我正在使用Subject 模型和Review 模型获取User 的数据。在相关的UserReview 中有一个评分栏。我正在尝试做的是首先获取最高评分但失败了。

这是我的控制器:

function guest()

    $topTutors = User::where('type', 'tutor')->with('subject')->with('review')->get();     

    return view('welcome', compact('topTutors'));

@foreach($topTutor->review as $singleReview)
    <div class="star-rating" data-rating=" $singleReview->rating "></div>
@endforeach

这是我无法对使用 sortbyDesc 的数据进行排序但它不起作用的刀片:

【问题讨论】:

请您展示一下您是如何使用sortByDesc()的。 @foreach($topTutor->review->sortByDesc('rating') as $singleReview) @dump($singleReview) @endforeach 这是代码但是对输出没有影响!查看截图:photos.app.goo.gl/5etyyQqHcqoKAWqVA 【参考方案1】:

尝试根据用户的评论等级对用户进行排序:

$topTutors = User::where('type', 'tutor')
    ->with('subject', 'review')
    ->get()
    ->sortbyDesc(function($user) 
        return $user->review->max('rating');
    );

【讨论】:

还是一样!请查看屏幕截图。 photos.app.goo.gl/SFerAecUmHX222CW6 @ショーアイブ 哦,您正在尝试根据用户的评论评级对用户进行排序,请查看我的更新答案。 啊啊啊还是一样!! :l 请查看我的刀片代码docs.google.com/document/d/… @shiョーアイブ 提供的链接无法访问。 请立即查看:docs.google.com/document/d/…

以上是关于无法在 Laravel 的双 foreach 循环中对数据进行排序的主要内容,如果未能解决你的问题,请参考以下文章

laravel - 无法在 foreach 之外获取数据

如何在刀片模板的 foreach 循环中访问 laravel 集合?

Laravel 刀片数组 foreach 循环

Laravel - 在降价邮件中使用 @foreach

如何在 laravel 刀片视图中打破 foreach 循环?

Laravel:刀片 foreach 循环引导列