如何在模型集合laravel

时间:2017-04-04 02:51:56

标签: php laravel eloquent laravel-5.3

在我发布之前我已经搜索了很多答案,但没有结果请原谅我,我的英语不是那么好

我的Laravel应用程序包含:

用户模型

public function Follow()
{
    return $this->belongsToMany(Page::class,"follows","user_id","page_id");
}

页面模型

public function Posts()
{
    return $this->hasMany(Post::class);
}

发布模型

public function Page()
{
    return $this->belongsTo(Page::class);
}

在homeController我的索引方法中应该返回用户关注页面的帖子

$user->follow()->get(); 

这只返回了Pages集合,我无法获取帖子或访问任何帖子 我需要访问帖子及其属性,如果可能的话,我需要计算帖子的喜欢。

非常感谢你。

2 个答案:

答案 0 :(得分:0)

您正在使用返回页面的函数follow()!检查您的退货声明

应该是:

public function Follow() { return $this->belongsToMany(Follow::class,"follows","user_id","page_id"); }

答案 1 :(得分:0)

我在万亿次尝试后找到了答案

    public function index()
{
    $user = Auth::User();
    $posts = [];

    foreach ($user->follow as $key => $page) 
    {
        foreach ($page->posts as $k => $post)
        {
            array_push($posts, $post);
        }

    }
    //return $posts;
    return view('home', compact('posts'));
}

我无法访问喜欢的计数,但我会试用with('')方法 我将更新任何进一步的信息