[英]How to insert a record using Eloquent (Laravel) relationships?
我有兩個表: UserActivities
和Activities
。
活動內容:
| Column | Type |
|--------|------------------|
| id | int |
| name | varchar(255) |
| | |
UserActivities:
| Column | Type | Comment |
|-------------|------|--------------------------|
| id | int | |
| user_id | int | |
| activity_id | int | //id of activity by name |
現在要將項目Item插入UserActivity
Model中,我必須編寫兩個這樣的語句
$activity = Activity::where('name', '=', 'user_login')->first();
UserActivity::create(['user_id' => Auth::login(), 'activity_id' => $activity->id]);
盡管這很好,但是我只是在閱讀雄辯的關系 ,想知道是否有創建belongsTo
關系的方法或某種關系並將其像這樣直接插入
UserActivity::create(['user_id' => Auth::login(), 'activity' => 'user_login']);
然后通過搜索名稱自動插入activity_id
? 可能嗎?
在閱讀@kerbholz評論后進行了更多研究之后,我認為這是這樣做的方法嗎?
Activity.php(模型)
class Activity extends Model {
public function user_activities() {
return $this->hasMany(UserActivity::class);
}
}
主要代碼:
Activity::where('name', '=', 'user_login')->first()->user_activities()
->create(['user_id' => Auth::id()]);
或者,以我為例,這可以確保“活動”名稱始終存在:
Activity::updateOrCreate(['name' => 'user_test'])->user_activities()->create(['user_id' => 1]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.