Laravel有很多关系问题

时间:2019-08-21 08:27:27

标签: laravel laravel-5 eloquent

我对模型中的表关系有疑问。当我尝试添加hasMany关系时,弹出错误。

  

调用模型[App \ AllPlan]上未定义的关系[Plan100]。

这是主表模型places

protected $table = "places";

public $with = ["AllPlan"];

public function allplans()
{
    return $this->hasMany("App\AllPlan");
}

AllPlan表模型

protected $table = "all_plans";

public function place()
{
    return $this->belongsTo("App\Place");
}

没问题,直到这里。我可以在json响应的AllPlan表中看到Places数据...但是,当我尝试将hasMany关系添加到AllPlan表中时,问题弹出下面。

现在AllPlan表模型如下所示。

protected $table = "all_plans";

 public $with = [
     "Plan100",
     "Plan90",
];

public function place()
{
    return $this->belongsTo("App\Place");
}

public function plan()
{
    return $this->hasMany(
        "App\Plan100",
        "App\Plan90"
    );
}

Plan100表模型如下所示:

public function plan()
{
    return $this->belongsTo("App\AllPlan");
}

但这给我一个错误。但是我不太确定我在哪里做错了。谢谢。

1 个答案:

答案 0 :(得分:1)

在我看来,您正在尝试创建两个新的关系,但这不能在一个函数中完成。创建两个函数,然后像这样重构代码:

public function plan100()
{
    return $this->hasMany(App\Plan100", 'foreign_key');
}

public function plan90()
{
    return $this->hasMany(App\Plan90", 'foreign_key');
}