У меня вопрос по поводу Laravel Eloquent
Есть 2 модели
class User extends Model
{
public static function search() {
$request = request();
return User::where(function ($q) use ($request) {
$member_level = $request->get('member_level');
$member_phone = $request->get('member_phone');
$member_name = $request->get('member_name');
$member_id = $request->get('member_id');
if ($member_level) {
$q->where('member_level', $member_level);
}
if ($member_phone) {
$q->where('member_phone', $member_phone);
}
if ($member_name) {
$q->where('member_name', $member_name);
}
if ($member_id) {
$q->where('member_id', $member_id);
}
});
}
class Deposit extends Model
{
public function user(){
return $this->belongsTo(Member::class, 'user_id', 'id');
}
}
У пользователя есть класс Депозит.
В другом контроллере Я использовал функцию поиска, как показано ниже
User::search()->get()
Мой вопрос в том, что я хочу использовать search () в модели User в контроллере с моделью Deposit.
Deposit::whereHas('user',function($q) {
condition from User::search().
})
есть любой способ сделать это? Поскольку я разрабатываю страницу администратора, есть много страниц поиска, которые повторяются для каждой страницы. Не могли бы вы поделиться своей идеей, есть ли способ лучше решить эту проблему.