Laravel将儿童添加到模型中

时间:2016-07-18 23:32:05

标签: php laravel

我开始使用Laravel,了解大多数基础知识的工作原理,但不确定如何将子项添加到模型或集合中。所以基本上我可以说3个模型(用户,分销商和帐户)。帐户属于分销商,分销商属于用户。两者都是“一对多”关系,因此分销商可以拥有多个帐户,而用户可以拥有多个分销商。

这是在我的控制器中获取该用户的分销商

$distributors   = User::find($id)->distributors;

我的用户模型

public function distributors()
    {
        return $this->hasMany('App\Distributor');
    }

我的经销商模特

public function accounts()
    {
        return $this->hasMany('App\Account');
    }

我希望将帐户作为子项附加到分销商模型中。现在,如果我dd($distributors);我获得该用户的所有分销商,但没有每个分销商的帐户。

我可以添加一些功能,以便将它们添加到分销商吗?就像使用这个电话一样:

 $distributors   = User::find($id)->distributors->with('accounts');

2 个答案:

答案 0 :(得分:1)

我明白了。我必须做的是添加""到用户模型不在控制器中,所以:

public function distributors()
    {

        return $this->hasMany('App\Distributor')->with('Accounts');
    }

答案 1 :(得分:0)

通常,您可以将Account添加到Distributor例如,如下所示:

Distributor::find(1)->accounts()->save($account);

在您的情况下,您可以将Account添加到Distributor,如下所示:

$distributors = User::with('distributors')->find($id)->distributors;
//A User can have many Distributors so you need to select one distributor,
//the first one in this example with index 0 !
$distributors[0]->accounts()->save($account);

我希望这会对你有所帮助。