首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Laravel 8中存储数据并同时更新不同表上的数据

在Laravel 8中存储数据并同时更新不同表上的数据
EN

Stack Overflow用户
提问于 2021-10-08 11:40:00
回答 1查看 20关注 0票数 0

我有两个表,'vehicles‘和'assign_vehicles’。每当我将车辆分配给驾驶员时,我希望'vehicles‘表中的'status’列被更新为'assigned‘。我该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2021-10-08 13:21:06

有一些假设是要做的。您必须拥有类似于下面这样的类。

代码语言:javascript
复制
public class Vechicle extends Model {
    public function assigned()
    {
        return $this->hasMany(AssignVehicle::class);
    }
}

public class AssignVehicle {
    public function vehicle()
    {
        return $this->belongsTo(Vehicle::class);
    }
}

您可以监视AssignVehicle事件并将其添加到您的引导方法中。将其添加到AssignVehicle.php类中。从那里访问车辆并更新状态。注意有一个creating and created事件,creating在保存到数据库之前,created在保存到数据库之后

代码语言:javascript
复制
public static function boot() {
    parent::boot();

    static::created(function (AssignVehicle $assignVehicle) {
        $assignVehicle->vehicle->status = 'assigned';
        $assignVehicle->vehicle->save();
    });
}

要触发此操作,请记住使用标准的Laravel方法来触发事件。下面的方法将会起作用。

代码语言:javascript
复制
AssignVehicle::create([
    'vehicle_id' => $vehicle->id,
    // your fields
])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69495251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档