да, к счастью, есть лучший способ, для которого термин называется relations
и может использовать нетерпеливую загрузку, поэтому вы можете сначала установить связь с моделями: поэтому в вашей модели Invoice
вы пишете что-то вроде ниже:
public function users(){
return $this->belongsTo('App/Users');
}
вы должны исправить указанное выше отношение в соответствии с именем и путем вашей модели и в вашей модели пользователя:
public function invoices(){
return $this->hasmany('App/Invoices');
}
, так что теперь счет-фактура принадлежит пользователю, а user
Может иметь много счетов-фактур. и когда вам нужно получить пользователей, у которых есть счета-фактуры и просроченные счета-фактуры, вы делаете как показано ниже:
$users = Invoices::with('users')->where("date_paid",'0000-00-00')->where("date_due","<=",date("Y-m-d"));
, это лучший способ действовать, поскольку предотвращает проблемы n + 1, таким образом вы загружаете пользователей, только если они если у вас просроченные счета, если они не загружаются вообще, посмотрите документацию ниже:
https://laravel.com/docs/7.x/eloquent-relationships#introduction
Я настоятельно рекомендую уделить время, прочитать это и попрактиковаться в этом, поскольку вам понадобится больше, чем вы думаете, когда вы хотите работать с laravel. надеюсь, это поможет