亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在另一個集合中擁有一個集合?

如何在另一個集合中擁有一個集合?

PHP
呼啦一陣風 2021-06-11 15:25:32
我有一個問題..在我的程序中,我需要一個集合User,另一個集合,其中包含用戶參與的所有項目以及hours他在每個項目中工作的數量。我有 3 個表來解決這個問題:users 表,很簡單的搭配。projects 桌子。time_entries,與user_id和project_id。Aproject可以有很多time_entries和userto。我已經測試過了,但它不起作用:$users = User::join('time_entries', 'users.id', '=', 'time_entries.user_id')  ->whereBetween('spent_on', [($request->input('debut')), ($request->input('fin'))])  ->join('projects', 'time_entries.project_id', '=', 'projects.id')  ->selectRaw('user_id , project_id, sum(hours) as sum')  ->get();
查看完整描述

1 回答

?
墨色風雨

TA貢獻1853條經驗 獲得超6個贊

您可以使用Laravel Eloquent定義/模型之間的多對多關系:UserProject


/** User.php */


public function projects()

{

    return $this

            ->belongsToMany(Project::class, 'time_entries')

            ->withPivot('hours');

}

——


/** Project.php */


public function users()

{

    return $this

            ->belongsToMany(User::class, 'time_entries')

            ->withPivot('hours');

}

然后只需訪問關系:


/** UserController.php */


public function myFunction()

{

    $users = User::with('projects')->get();

    // this $users collection will have another collection inside (projects).



    $projects_of_first_user = $users->first()->projects;

}


查看完整回答
反對 回復 2021-06-13
  • 1 回答
  • 0 關注
  • 143 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號