首页 > 解决方案 > BadMethodCallException : 方法 Illuminate\Database\Query\Builder::offers 不存在

问题描述

我正在尝试在Laravel 5.6.39上执行 php artisan db:seed并收到错误:

BadMethodCallException :方法 Illuminate\Database\Query\Builder::offers 不存在。

报价型号代码:

namespace App;

use Illuminate\Database\Eloquent\Model;

class Offer extends Model
{
    protected $guarded = [];

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

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

}

任务模型

public function offers()
{
    return $this->hasMany(Offer::class);
}

数据库种子文件

factory(App\Task::class, 10)->create()->each(function ($task) {
    return $task->offers()->save(factory(App\Offer::class)->make());
});

我做错了什么?

标签: laravellaravel-5eloquent

解决方案


将您的 DatabaseSeeder 更新为此并检查

factory(App\Task::class, 10)->create()->each(function ($task) {
    return $task->offers()->save(factory(App\Offer::class)->create());
});

推荐阅读