![](/img/trans.png)
[英]Get data from multiple sql tables using eloquent with laravel
[英]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.