【问题标题】:Eloquent - Get related elementEloquent - 获取相关元素
【发布时间】:2015-05-06 22:10:55
【问题描述】:

我有一张名为images 的表格,用户可以为每张图片投票。
当用户对图像进行投票时,我会在 votes 表中添加一个新行来注册投票和 user_id

图片:
- 身份证
- 图片名称

投票:
- 用户 ID
- Image_id

现在我需要获取所有按票数排序的图像,我该怎么做?

我在 Image.php 文件中添加了一个新方法:

  public function votes()
    {
        return $this->hasMany( 'App\Vote' );
    }

我应该得到所有图片然后订购吗?

我在想:

$images = Image::with('votes')->get();

这是正确的方法还是雄辩中有隐藏的功能?

【问题讨论】:

    标签: php laravel-5


    【解决方案1】:

    试试这个:

    $images = Image::with('votes')->get()->sortByDesc(function($sort)
    {
        return $sort->votes->count();
    });
    

    分页请查看manual pagination

    【讨论】:

    • 差不多了,我需要DESC order 中的结果,我需要一个分页。对于 DESC 顺序,我在 sortBy 函数中添加了 secondthird 参数,但是分页呢? ->pagination 不工作
    • 你想获取特定页面(如果是,页面大小是多少)或创建分页器?
    • $images = Image::with('votes')->get()->sortBy(function($sort) { return $sort->votes->count(); }, SORT_REGULAR , 真);
    • 检查 ^ 以上到 DESC 订单@ChristianGiupponi
    • PawelBieszczad 创建一个分页器。 @GabrielMoretti 谢谢,我已经解决了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-03
    • 1970-01-01
    • 2022-01-18
    • 2017-09-21
    • 1970-01-01
    相关资源
    最近更新 更多