在laravel 5.6中使用雄辩的方法从关系模型中获取行(虽然不是直接关系)

时间:2018-08-09 09:18:33

标签: php laravel

Custom_list.php

public function base_voters()
{
    return $this->belongsToMany('App\Models\Base_voter', 'custom_pivot_base', 'custom_list_id', 'base_voter_id');
}

Base_voter.php

public function custom_lists()
{
    return $this->belongsToMany('App\Models\Custom_list', 'custom_pivot_base', 'custom_list_id', 'base_voter_id');
}

public function contribution_data()
{
    return $this->belongsTo('App\Models\Contribution_data', 'contribution_data_table_id', 'id');
}

Contribution_data.php

public function contribution_donation()
{
    return $this->hasMany('App\Models\Contribution_donation', 'contribution_data_id', 'id');
}

public function base_voter()
{
    return $this->hasOne('App\Models\Base_voter', 'contribution_data_table_id', 'id');
}

Contibution_donation.php

public function contribution_data()
{
    return $this->belongsTo('App\Models\Contribution_data', 'contribution_data_id', 'id');
}

这里是这样的:

$customList = Custom_list::with(['base_voters' => function($query) use ($request){  

            if (!empty($request->city)) { 
            $city_arr = array_map( 'trim', explode( ",",$request->city ) );
                $query->whereIn('home_address_city',$city_arr);
            }

            if (!empty($request->gender)) {   
                $query->where('gender','like',$request->gender);
            }

            //NEED TO ADD CODE SOMEWHERE HERE

}])->find($custom_list_id);

现在,我要检查捐赠> $ donation。

Custom_list和Base_voter与数据透视表连接。 custom_pivot_base。

Base_voter具有一列contribution_data_table_id。它保存有贡献数据的row_id。这是直接的1-1关系。

Contribution_data有很多的contribution_donation。 Contribution_donation的一列中保存了tribution_data_id的ID。

例如,现在,如何获得捐款超过$ 500的行。

0 个答案:

没有答案