doutai1509 2016-02-27 12:13
浏览 20

用Eloquent处理Laravel中的喜欢

I'm trying to create a list of the 10 most liked 'Freestyles' on my website.

The like table has the freestyle ID and a user ID inside of it, the freestyle belongs to the like table.

I'm wondering how I can express this in eloquent and retrieve the SUM of all of the likes in the Like table via the Freestyle ID.

So, where all of the freestyle IDs = 1 (for example) count them and return the amount.

Sorry if it doesn't make much sense!

  • 写回答

1条回答 默认 最新

  • doumouyi4039 2016-02-27 13:16
    关注

    So you have two models:

    Freestyle (table freestyles) and Like (table likes).

    A like is something a user will give to a freestyle. Therefore a Like belongs to a Freestyle and a Freestyle has many Likes. Please note the terminology I use in my phrasing. A Like also belongs to a User, but that's not too important for your question.

    In order to get the total likes for a Freestyle you should have the relation likes defined as a "hasMany".

    class Freestyle extends \Eloquent {
        public function likes() {
            return $this->hasMany(Like::class);
        }
    }
    

    With this relation you can now specify the total number of likes, using the relation:

    Freestyle::find(1)->likes->count();
    

    Likes (as a property call, not a method call) will return an \Illuminate\Database\Eloquent\Collection which offers the easy method count.

    评论

报告相同问题?

悬赏问题

  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)