Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在模型集合laravel上调用函数_Php_Laravel_Eloquent_Laravel 5.3 - Fatal编程技术网

Php 如何在模型集合laravel上调用函数

Php 如何在模型集合laravel上调用函数,php,laravel,eloquent,laravel-5.3,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); } 后模型

在我发布这篇文章之前,我已经寻找了很多答案,但没有结果请原谅我的英语不是很好

我的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中,我使用了index方法,该方法应该返回用户的后续页面的帖子

$user->follow()->get(); 
这只返回了Pages集合,我无法获取帖子或访问任何内容 我需要访问帖子及其属性,如果可能的话,我还需要计算帖子的喜好


非常感谢。

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

应该是:

公共函数Follow()
{
返回$this->belongTomany(Follow::class,“follows”,“user\u id”,“page\u id”);

}

经过无数次尝试,我终于找到了答案

    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'));
}
我还无法访问likes计数,但我将使用(“”)方法尝试


我将更新任何进一步的信息

我没有Follow model
follows
是透视表使用的
user\u id
page\u id
多对多关系我知道,但只需看看您的用户模型中的函数
Follow()
返回了什么!!它返回一个页面,这就是为什么你得到页面集合是的,它返回页面,我只需要这些页面的帖子。$user->follow()->posts()->get()类似的东西?不确定我是否错过了一些东西,比如:first()不,这不起作用,它告诉我没有posts方法,我尝试了很多次,也没有很多选项,没有成功的快速加载,
$user->follow()->with('posts')->get()