Laravel 雄辩:用相关的新模型存储新模型

     2023-03-15     68

关键词:

【中文标题】Laravel 雄辩:用相关的新模型存储新模型【英文标题】:Laravel eloquent: store new model with related new models 【发布时间】:2017-09-23 15:27:58 【问题描述】:

我正在尝试存储一个新模型,其中包含许多相关的新模型。

我有我的服务模型

class Service extends Model
    public function serviceoperations() 
        return $this->hasMany("App\Models\ServiceOperation");
    

和我的ServiceOperation模型

class ServiceOperation extends Model
    public function service() 
        return $this->belongsTo("App\Models\Service");
    

在我的 store 函数中,我正在使用 transaction 创建一个具有许多服务操作模型的新服务模型:

use App\Models\Service;
use App\Models\ServiceOperation;
use Illuminate\Support\Facades\DB;

    public function store(Request $request) 
        $service = new Service();
        $ops = [];
        foreach ($operations as $operation) 
            $op = new ServiceOperation();
            $ops[] = $op;
        
        DB::transaction(function()use($service, $ops) 
            $service->save();
            $service->serviceoperations()->saveMany($ops);
        );
    

我的问题是:是否有另一种方法可以将我的新相关 serviceoperation 模型添加到我的新 service 模型中,并将它们保存在单个命令中的数据库?

【问题讨论】:

【参考方案1】:

你必须使用associate方法。

$service->serviceoperations()->associate($serviceoperations)

希望对你有帮助:)

【讨论】:

我不确定它是否有效。看着this question,我应该先保存我的服务模型,然后才能打电话给同事。无论如何,我只是尝试过,它不起作用。我也尝试了反向$operation->service()->associate($service),但它并没有保存创建的新操作。

laravel:雄辩的例子将数据插入数据库

】laravel:雄辩的例子将数据插入数据库【英文标题】:laravel:eloquentexampleinsertdatatodatabase【发布时间】:2014-03-1520:40:58【问题描述】:很抱歉问这个问题,但我来自codeIgniter,很难理解雄辩的模型插入。这对我来说是一种处理模... 查看详情

列表模型如何按 DOWN-VOTES 的数量排序到相关模型 - laravel,雄辩

】列表模型如何按DOWN-VOTES的数量排序到相关模型-laravel,雄辩【英文标题】:howlistmodelsortedbynumberofDOWN-VOTEScasttorelatedmodel-laravel,eloquent【发布时间】:2015-03-0222:15:49【问题描述】:感谢@LukasGeiter的帮助,我改进了我的引文和书籍... 查看详情

雄辩模型和模型之间的区别?

...2015-10-0113:19:50【问题描述】:所以,我对此感到困惑:在Laravel的官方文档中,他们说:Laravel附带的EloquentORM提供了一个漂亮、简单的用于处理数据库的ActiveRecord实现。每个数据库表有一个对应的“模型”,用于交互用那张桌子... 查看详情

雄辩的条件更新

...nalUpdate【发布时间】:2013-05-3110:16:42【问题描述】:我在Laravel3中使用Eloquent,想知道有条件地更新数据库表中的记录的最佳实践是什么。我将模型中的密钥设置为“电子邮件”字段,并发现我可以使用find()方法进行检查,如果... 查看详情

雄辩的关系,模型的链接(Laravel 5.4)

】雄辩的关系,模型的链接(Laravel5.4)【英文标题】:EloquentRelationships,linkingofmodels(Laravel5.4)【发布时间】:2017-10-0407:33:35【问题描述】:我有点困惑Laravel5.4中雄辩的关系是如何工作的。我有一个与我的用户模型有“hasMany”关... 查看详情

Laravel 雄辩用 whereHas 或其他限制 withCount

】Laravel雄辩用whereHas或其他限制withCount【英文标题】:LaraveleloquentrestrictwithCountwithwhereHasoranother【发布时间】:2021-12-2422:58:38【问题描述】:我有3个模型Supplier、Purchase和PurchaseDetail。为了通过Purchase将Supplier模型与PurchaseDetail加入... 查看详情

Laravel 雄辩:更新模型及其关系

】Laravel雄辩:更新模型及其关系【英文标题】:Laraveleloquent:UpdateAModelAnditsRelationships【发布时间】:2014-08-0316:54:22【问题描述】:使用eloquent模型,您只需调用即可更新数据$model->update($data);但不幸的是,这不会更新关系。如果... 查看详情

laravel 雄辩的关系 3 模型

】laravel雄辩的关系3模型【英文标题】:laraveleloquentrelation3models【发布时间】:2018-02-1904:19:10【问题描述】:我有一个Laravel5.4项目,其中有一些模型:Client、Owner、Employee、Bankstrong>(实际上是银行账户,但我选择银行是为了方... 查看详情

Laravel 雄辩模型如何从关系表中获取数据

】Laravel雄辩模型如何从关系表中获取数据【英文标题】:Laraveleloquentmodelhowtogetdatafromrelationship\'stable【发布时间】:2016-03-0900:39:14【问题描述】:我正在开发一个具有以下雄辩模型的laravel应用程序ProducthasMany(\'App/Sku\',\'products_id\... 查看详情

无法使用 Laravel 雄辩模型更新 json 列

】无法使用Laravel雄辩模型更新json列【英文标题】:can\'tupdatejsoncolumnusingLaraveleloquentmodel【发布时间】:2021-06-0122:41:09【问题描述】:我正在尝试测试Eloquent模型的更新.../**@test*/publicfunctionupdates_to_json_fields_are_logged()$data=json_encode([... 查看详情

Laravel 通过属性获得雄辩的查询构建器关系

】Laravel通过属性获得雄辩的查询构建器关系【英文标题】:Laravelgeteloquentquerybuilderrelationsbyproperty【发布时间】:2021-12-0222:49:42【问题描述】:我正在使用eloquent查询构建器根据用户搜索查询提供的参数有条件地构建搜索查询。... 查看详情

Laravel 雄辩的多对多模型

】Laravel雄辩的多对多模型【英文标题】:Laraveleloquentmanytomanytomanymodel【发布时间】:2014-03-1714:28:51【问题描述】:我在laravel4中做一个项目,我已经停下来了。任务表:task_id(PK)task_title测量表:measure_id(PK)measure_title例程表:routin... 查看详情

Laravel 7 部分模拟雄辩模型因 __construct() 而失败,但未指定期望

】Laravel7部分模拟雄辩模型因__construct()而失败,但未指定期望【英文标题】:Laravel7partialmockeloquentmodelfailswith__construct(),butnoexpectationswerespecified【发布时间】:2020-10-3010:11:57【问题描述】:我正在使用Laravel7并尝试部分模拟一个雄... 查看详情

如何从 hasManyThrough 雄辩关系返回 Laravel 中的单个模型

】如何从hasManyThrough雄辩关系返回Laravel中的单个模型【英文标题】:HowtoreturnasinglemodelinLaravelfromahasManyThrougheloquentrelationship【发布时间】:2018-09-2510:23:46【问题描述】:我的表结构如下:tickets-idassignments-id-ticket_id-staff_id-role-isAssi... 查看详情

雄辩的模型属性作为骆驼案例 [Laravel 5.2] [Dingo API]

】雄辩的模型属性作为骆驼案例[Laravel5.2][DingoAPI]【英文标题】:Eloquentmodelattributesascamelcase[Laravel5.2][DingoAPI]【发布时间】:2016-07-2716:52:00【问题描述】:我们的Eloquent模型具有遵循Laravel蛇案例约定的属性。例如first_name、last_name... 查看详情

两个多对多相关表之间的Laravel雄辩关系

】两个多对多相关表之间的Laravel雄辩关系【英文标题】:Laraveleloquentrelationshipbetweentwomanytomanyrelatedtables【发布时间】:2015-03-0711:34:45【问题描述】:我有很多相关的两个表,“roles”和“users”,数据透视表为“user_roles”。在角... 查看详情

雄辩的 ORM 控制器或模型

...人员,我写东西很快,担心以后的维护。我目前正在使用laravel,我有很多数据库交互,所有eloquent的示例似乎都直接在控制器中与数据库对象交互。这是最好的选择,还是更有条理地将这些雄辩的方法包装在模型中用于该相关查... 查看详情

设置与子模型的新实例的 hasOne 关系

...hildmodel【发布时间】:2017-09-1023:42:06【问题描述】:使用Laravel4.2,如何在不接触数据库的情况下将模型上的hasOne关系设置为新模型的实例?我想做以下事情,但Laravel将实例视为属性,而不是子关系。classParentClassextends\\Eloquentpubl... 查看详情