相关疑难解决方法(0)

如何按Eloquent ORM中多对多关系的数据透视表的字段进行排序

我一直在使用Eloquent ORM已经有一段时间了,我知道它非常好,但我不能做到以下几点,而在Fluent中很容易做到.

我的用户有多对多的歌曲,中间表是song_user(就像它应该的那样).根据播放次数判断,我想获得用户的热门歌曲.当然,播放计数存储在中间表中.

我可以用Fluent做到:

$songs = DB::table('songs')
    ->join('song_user', 'songs.id', '=', 'song_user.song_id')
    ->where('song_user.user_id', '=', $user->id)
    ->orderBy("song_user.play_count", "desc")
    ->get();
Run Code Online (Sandbox Code Playgroud)

简单.但我想在Eloquent中做到这一点,当然这不起作用:

$songs = Song::
    with(array("song_user" => function($query) use ($user) {
        $query->where("user_id", "=", $user->id)->orderBy("play_count", "desc");
    }))
Run Code Online (Sandbox Code Playgroud)

laravel eloquent

30
推荐指数
2
解决办法
2万
查看次数

如何通过Laravel中的热切加载来另一个表加入

我有产品和库存表;

制品

id int
name varchar
created_at timestamp
Run Code Online (Sandbox Code Playgroud)

个股

id int
name varchar
product_id varchar
created_at timestamp
Run Code Online (Sandbox Code Playgroud)

产品型号

public function validStock() {
    return $this->hasMany('Stock')->where('quantity', '>', 10);
}
Run Code Online (Sandbox Code Playgroud)

如果两者都有created_at,如何通过stock的created_at订购,我尝试了两种方法,但它不起作用

Product::with('validStock')->orderBy('validStock.created_at', 'DESC');

Product::with(array('validStock' => function($q) {
    $q->orderBy('created_at', 'DESC');
}));
Run Code Online (Sandbox Code Playgroud)

laravel-4

3
推荐指数
2
解决办法
6056
查看次数

标签 统计

eloquent ×1

laravel ×1

laravel-4 ×1