如何在Laravel中获取特定用户的所有帖子?

时间:2015-08-06 18:54:51

标签: php mysql laravel

尝试在应用程序中获取用户的所有帖子并显示在具有相应列的表中,我尝试这种方式但显示异常:"试图获得非对象的属性" ,怎么解决?

public function usersPost(){
$uid = \Auth::user()->id;
$posts = DB::table('posts')->('user_id',$uid);
}

这里有两个表帖子,user和user_id是posts表的外键。

3 个答案:

答案 0 :(得分:4)

public function usersPost() {
    $posts = DB::table('posts')->where('user_id', auth()->id())->get();
}

答案 1 :(得分:4)

Laravel允许您将模型相互关联。例如,您可以将Post模型与用户模型相关联。

class User extends Eloquent {

    public function posts() {
        return $this->hasMany('Post');
    }

}

在通过一对多关系指定用户有很多帖子后,您可以直接拨打所有用户的帖子。

$posts = User::find(user_id)->posts;

答案 2 :(得分:2)

你需要这样的where子句:

$posts = DB::table('posts')->where('user_id', $uid)->get();