Ich arbeite an einer BDS (Blood Donation Society) -Funktion für meine Universität Website. Jetzt stehe ich vor einem Problem mit der Beschaffung der verfügbaren Spender, d. H. Spender, die in den letzten 3 Monaten oder 6 Monaten kein Blut gespendet haben. Im Anschluss ist mein Code:Ich kann keine Blutspender in Laravel bekommen
Donor-Klasse wie folgt:
public function allDonors()
{
$donors = Donor::getAvailableDonors();
return view('BDS/allDonors',compact('donors'));
}
Jetzt weiß ich, dass ich eine nicht statische Methode statisch bin Aufruf, aber:
protected $fillable = [
'name',
'email',
'address',
'area',
'mobile',
'blood_group',
];
public function getLastDonation()
{
return DonorRecord::all()->where('donor_id',$this->id)->pluck('donation_date');
}
public function getAvailableDonors()
{
$current = Carbon::now();
return Donor::all()->where($this->getLastDonation(),'<=',$current->addMonths(3));
}
unter meinem Controller-Code ist Was ich nicht weiß ist, wie ich es umgehen kann.
Was ich bereit bin zu erreichen ist, dass Spender bekommen, die Blut für die letzten 3 Monate nicht gespendet haben und es zur Ansicht schicken. Auch in der Methode getLastDonation() bin ich mir nicht sicher, ob ich die richtige Abfrage verwende.
Folgendes ist mein DonorRecord Model/Class.
vielleicht 'zurück Donor :: all() -> wo ('donation_date', '<=', $ current-> subMonths (3));' – neuronet
$ zeit = Carbon :: now() -> subMonth (3); zurückgeben Donor :: all() -> where ($ this-> getLastDonation(), '<', $ time); Ich habe versucht, dies hinzuzufügen, aber es wird auch nicht funktionieren. Es gibt ein leeres Array zurück. Wohingegen es 2 Aufzeichnungen zurückgeben sollte. –
Sie sollten 'all()' nicht verwenden, wenn Sie nicht alle wollen.Filtere es vor dem Holen: 'Donor :: where ('donation_date', '<=', $ current-> subMonths (3)) -> get();' –