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

时间:2017-04-26 09:46:28

标签: php laravel laravel-5 eloquent laravel-eloquent

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

我有服务模型

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");
    }
}

在我的商店功能中,我正在使用交易创建一个包含许多服务操作模型的新服务模型:

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 模型添加到我的新服务模型中,并将其保留在单个命令中的数据库?

1 个答案:

答案 0 :(得分:0)

您必须使用associate方法。

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

希望它对你有所帮助:)。