0

我正在尝试在应用程序中制作类似 twitter 的提要,我有一个名为connectionswhere inside there's 的数据库userfollow另一个名为containsfeed的数据库,owner它等于.followconnections

如果静态地拥有追随者的每个 id,我可以做的是where('owner', '=' $follow)在每个追随者上使用并返回它。

我尝试了这种方法,但并不理想:

Get each follower inside connections;

foreach(follower) {

Get 10 of the latest posts orderBy "created_at";

Push into array;

}

shuffle array;

limit array to 15;

return array;

这也以返回的数组未按创建日期排序而结束。

仅当用户以最佳/最简单的方式关注所有者时,我将如何使用 eloquent 获取提要项目?

有没有可以使用的特定 Laravel 工具?

数据库布局也不是固定的,如果需要可以更改以更好地适应它。

4

1 回答 1

0

您需要在用户和自身之间创建多对多关系。请参阅 laravel 雄辩的文档http://laravel.com/docs/eloquent#relationships。我没有测试这段代码,但它应该足以让你开始走上正轨。

创建一个名为“user_following”的数据透视表:

(int) id, (int) user_id, (int) following_id

然后做这样的事情:

<?php

// Model 

class User extends Eloquent {

    public function following()
    {
        return $this->belongsToMany('User', 'user_following', 'user_id', 'following_id');
    }

    public function tweets()
    {
        return $this->hasMany('Tweet')->orderBy('created_at', 'desc');
    }

}



// controller

$tweetsOfWhoImFollowing = User::find($id)->following->tweets;
于 2013-11-03T21:24:31.917 回答