簡體   English   中英

如何使用Laravel eloquent在多個表中存儲數據

[英]How to store data in multiple tables using Laravel eloquent

我的模塊有多種媒體。 我想用eloquent將數據存儲在三個表中。 我的表格如下

users,DrivingSession,Media,DrivingSession模型包含user_id,Media模型包含driving_session_id。 我想在Media模型中存儲由特定用戶創建的DrivingSession圖像/視頻。我的模型功能是。

Users.php

public function drivingsessions(){
    return $this->hasmany(DrivingSession::class);
}

DrivingSession.php

public function user(){
    return $this->belongsToMany(User::class);
}

public function Medias(){
     return $this->hasMany(Media::class);
}

忽略原始

public function drivingSession(){
    return $this->belongsToMany(DrivingSession::class);
}

我想存儲user_id,以便在DrivingSessions表和附加的Media to Medias表中進行參考。 我怎樣才能做到這一點 ?

如果每個駕駛會話只有一個用戶,那么它應該是BelongsTo關系。

public function user()
{
 return $this->belongsTo(User::class);
}

假設您已使用user_id設置db表,那么您應該能夠運行

$user->drivingsessions()->save($driving_session);

這將自動填充drivesession中的user_id列。

你會在媒體上做類似的事情,我認為你更有可能想要belongsTo而不是belongsToMany;

$driving_session->medias()->save($media);

如果您正在創建資源,則可以使用以下內容

$driving_session = $user->drivingsessions()->create([
    'title' => $request->input('title'),
]);

然后,您可以使用捕獲的資源更新媒體

$driving_session->medias()->create([
    'media' => $request->input('media');
])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM