簡體   English   中英

如何使用口才(Laravel)關系插入記錄?

[英]How to insert a record using Eloquent (Laravel) relationships?

我有兩個表: UserActivitiesActivities

活動內容:

| 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.

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