Laravel 5.5 - "在null"上调用成员函数sync()错误

时间:2017-12-01 21:34:28

标签: php laravel-5 laravel-5.5

我试图保存帖子图片。保存图像或将图像移动到uploads目录没有问题。但是在sync部分,它给了我这个错误。

(我有三个表。帖子,媒体和数据透视表)

这是同步代码;

$media = Media::where('created_at', '>=', Carbon::now()->subSecond(10))->pluck('id');

$post->media()->sync($media, true);

媒体模型;

public function posts(){

    $this->belongsToMany('App\Post','media_post','image_id','post_id');
}

和发布模型

public function media() {

    $this->belongsToMany('App\Media','media_post','post_id','image_id');
}

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您没有从关系方法返回。这就是原因。

public function media()
{
    $this->belongsToMany(...);
}

这就是你正在做的事情,它没有return

$n = null;
$n->sync(); // Call to a member function sync() on null

function a() { }
a()->sync(); // Call to a member function sync() on null

这是PHP。您定义了一个不返回任何内容的方法,如果您调用它,最终会得到null

相关问题