【问题标题】:Creating instance of eloquent with multiple relationships?创建具有多种关系的 eloquent 实例?
【发布时间】:2016-04-22 10:56:32
【问题描述】:

我有 3 个模型: 插件、评论和用户。

用户是插件的父级。在一对多的关系中,我可以轻松地创建一个与用户关联的插件:

$user->plugins()->create([...options...]);

但现在我的问题是:评论是用户和插件的孩子。如何在不手动设置一个 ID 的情况下使用 User 和 Plugin 创建评论?

【问题讨论】:

    标签: php laravel eloquent relationship laravel-5.2


    【解决方案1】:

    假设一个评论属于一个用户和一个插件,你可以使用关系的associate()方法来设置外键。请注意,此方法仅在对象上设置适当的属性;您仍然需要save() 对象来更新数据库。

    这是一个例子:

    $plugin = $user->plugins()->create([...plugin options...]);
    
    // instantiate a new review instance
    $review = new \App\Review([...review options...]);
    
    // set the user association
    $review->user()->associate($user);
    
    // set the plugin association
    $review->plugin()->associate($plugin);
    
    // save the entire record to the database
    $review->save();
    

    【讨论】:

    • 工作,谢谢!这正是我正在寻找的:)
    • 是否可以在创建时关联多个模型?我与外国人有 2 条关系,它们都不能为空,如果我尝试使用关联创建模型而不提供另一个相关记录 ID,则会出错。
    猜你喜欢
    • 1970-01-01
    • 2017-05-21
    • 2010-11-13
    • 1970-01-01
    • 2018-06-12
    • 1970-01-01
    • 2019-02-11
    • 1970-01-01
    • 2020-10-11
    相关资源
    最近更新 更多