我有以下基本架构:

玩家

id
name

型材

id
player_id
email

id
profile_id
alias

我的印象是,创建新记录时可以执行以下操作:

Player::create([
    'name' => 'Player 1',
    'profile.email' => 'player1@email.com',
    'profile.subset.alias' => 'Player 1 alias'
]);

由于此代码似乎无法正常工作,因此是否可以将关系记录与create方法一起保存?

===============>>#1 票数:1 已采纳

基本上,您不能像看起来那样简单。

在文档中,所有相关模型都是在创建基本模型之后创建的

$profile = new Profile(array('email' => 'player1@email.com','alias'=>'Player 1 alias'));

$player = new Player(array('name'=>'Player 1'));

$player = $post->profile()->save($profile);

但是,如果您真的想一次完成操作,则可以覆盖Player模型中的save()方法:

public function save(){
        Database::transaction(function() {
                    $profileModel = new Profile($this->profile);

                    parent::save();

                    $this->profile()->insert($profileModel);

                });
}

然后,您将把数组传递给Player方法,例如:

array(
name='Player name',
profile=>array(
         email=>'player1@email.com',
         subset=>array(
           alias=>'Player 1 alias'
          )
);

尽管不建议这样做。

请阅读有关如何保存Eloquent模型和关系的更多信息:

教程1 教程2

建议在每个地方先创建基础模型,然后再创建相关模型。

  ask by user2094178 translate from so

未解决问题?本站智能推荐:

1回复

创建新的多态关系

在我的Laravel应用程序中,如何通过以下设置创建新的父母和子女? 我努力了 但这给出了以下错误 Builder.php第2161行中的BadMethodCallException: 调用未定义的方法Illuminate \\ Database \\ Query
1回复

嵌套关系在第一次结果后停止工作

这是我目前的查询: 这是我的Message.php类中的children关系: 这是我想要获得的输出: 但相反,它正在返回: 查询似乎只返回第一个结果的子项,但之后没有其他结果。 我究竟做错了什么? 如何修复查询以获得我需要的结果?
1回复

我可以在Laravel中一次使用关系表保存数据吗?

我有两个表Lead和Comment 。 关系如下: 工作代码: 但是,我的问题是我可以在一行代码中完成它,意味着只有一种保存方法吗?
3回复

Laravel数据透视表创建一次关联,然后更新

我有以下表格: 用户: 课: Users_Lessons_Status(充当数据透视表并保存其他信息): 我想要做的是,对于每个用户,对于每个课程,数据透视表中都应该有一行,告诉用户该课程中用户已经完成了多少,以及他们最近的部分ID是什么。 也就是说,应该有一个具
1回复

在Laravel中建立关系

我是laravel的新手,我不太了解如何使用它来建立关系。 我想我正在度过一个“休息”的日子,因为我努力做一些相对简单的事情。 我有2张桌子。 项目和库存 库存表中的每个条目都有一个标记为itemid和userid的列。 因此,例如,这可能是带有其条目的表清单 -
1回复

雄辩的:访问模型关系或创建新的[重复]

这个问题已经在这里有了答案: 具有雄辩关系的空对象模式 3个答案 假设数据库中有2个表:user,appUser(用户有一个appUser并定义了关系)具有用户ID,为了更新appUser数据,我们可以使用以下代码(如果没有appUser相对模型): 看起来
1回复

创建具有多个地区和行业之间关系的记录

即时通讯在我的应用程序中出现错误,看起来一切正常,但是创建了错误的查询,但是我的表和模型正确,基本上,我注册的用户可以选择多个地区和行业/领域。 我的错误是: 模型用户: AuthController: 迁移user_region_table_creation
1回复

如何建立Laravel关系

我正在使用Larvel 5.3,并且希望创建四个表。 订单属于用户,并且用户有很多订单。 产品属于许多订单,另外还属于一个品牌。 一个品牌有很多产品。 我正在尝试找到一种获取产品,产品品牌和用户订单的方法。 User.php Order.php Produ
2回复

建立雄辩的关系中的方法

我有两个模型。 一个是Order ,另一个是Item 。 一个订单可以有多个项目,而一个项目只能有一个订单。 我的订单模型中有这个: 这是我的Item模型: 我想要一个可以获取订单中所有物品总数的函数。 例如,我希望能够使用$order->items->t
1回复

雄辩有可能建立动态关系吗?

是否有雄辩的动态关系? 我要执行以下操作: 在我的Commentaar模型中,我有这个: 因此,如果fkauteur列等于“personeel”它应该加载Personeel模式,否则它应该加载Contactpersoon模型。 我提供的代码的问题在于,当我调用该关系时