如何将参数传递给laravel中的关系模型

时间:2018-06-19 10:17:41

标签: php eloquent laravel-5.5 entity-relationship-model

我正在尝试为每个分支获取用户分支和用户分支以及工作时间。 我被困为work.hours关系模型返回与分支相关的所有用户的工作时间,我无法找到一种方法来获得与分支相关联的当前用户的工作时间。

我有三张桌子: -

Users (users)
    id
    firstname
    lastname

Branch (branch)
    id
    user_id
    branch_name

Branch Users  (branch_users)
    id
    branch_id
    user_id

Branch Working Hours  (working_hours)
    id
    branch_id
    user_id
    day
    time_from
    time_to

UserController中: -

$user_id = $userId;
$data['doctorProfile'] = User::select(
                        'id',
                        'firstname',
                        'lastname'
                    )
                    ->with([
                        'branches' => function($query){
                            $query->select(
                                    'user_id',
                                    'branch_id'
                                )
                                ->whereHas('branch', function($q){
                                    $q->where('status',1);
                                });
                        }
                    ])
                    ->find($userId);

用户模型: -

public function branches()
{        
    return $this->hasMany('App\Model\Api\BranchUser', 'user_id', 'id')->with([
        'branch' => function($query){
            $query->select(
                'id',
                'branch_name'
            );
        },
        'workingHours' => function($query){ 
            $query->select(
                    'branch_id',
                    'user_id',
                    'day',
                    'time_from',
                    'time_to'
                );
        }
    ]);
}

分支用户模型: -

public function branch()
{
    return $this->belongsTo('App\Model\Api\Branch', 'branch_id', 'id');
} 

public function workingHours()
{
    return $this->hasMany('App\Model\Api\WorkingHour', 'branch_id', 'branch_id');
}

0 个答案:

没有答案