2016-09-15 2 views
0

Ich bin neu bei Laravel, ich baue eine kleine Anwendung, die warnt, wenn das Ereignisdatum eine Woche vom aktuellen Datum entfernt ist. Hier ist mein Controller-CodeWie filtert man Ergebnisse in Where-Klausel in Laravel?

public function index() 
{ 

    $domain_count = domain_details::get()->count(); 
    $domain_alert = domain_details:: 
    where('domain_ex_date','>',date('Y-m-d')) 
    ->get(); 
} 

Die domain_ex_date ist im Format (YYYY-mm-dd) mit Hilfe von Kohlenstoff gespeichert. Die Zeile where('domain_ex_date','>',date('Y-m-d')) ruft einen vollständigen Datensatz ab, wenn das domain_ex_date vom aktuellen Datum entfernt ist. d. h. 2017-06-12> 2016-09-15 erhält den gesamten Datensatz. Hier, was ich tun möchte, ist, ich möchte filtern und die einzigen Aufzeichnungen bekommen, die nur eine Woche vom gegenwärtigen Datum entfernt sind. Wie mache ich das ? Ich habe versucht wie subweek() und subdays(), aber nichts half.

sollte ich den Rekord nur erhalten, wenn es diese Bedingung domain_ex_date - current date = 7

+0

brauchen yo die Daten gut funktioniert hat, die die Bedingung (domain_ex_date - current_date) = 7 oder (domain_ex_date - current_date)> = 7? –

Antwort

1

erfüllt Sie strtotime() verwenden können:

domain_details:: where('domain_ex_date','<',date('Y-m-d',strtotime("+7 days")))   
       -> where('domain_ex_date','>',date('Y-m-d')) 
       ->get(); 
+0

sollte es nicht strtotime ("+ 7 Tage") sein? –

+0

Es scheint von der Frage, dass "domain_ex_date" das Ereignisdatum ist, das später als das "aktuelle_Datum" sein wird. So können Sie dem aktuellen Datum 7 Tage hinzufügen und dann prüfen, ob das aktuelle Datum größer ist als das Ereignisdatum. Recht? –

+0

@ sha-1. Oh. Ich dachte, es wäre ein Datum erstellt worden. –

1

Verwenden Carbon! Carbon ist eine eingebaute Datumsverlängerung ... Probieren Sie es aus! :)

$week = Carbon::now()->addWeek(); 
$now = Carbon::now(); 

domain_details::where("domain_ex_date","<" $week) 
    ->where("domain_ex_date", ">" $now) 
    ->get() 

Oder Sie könnten auch die addDays ($ days) -Methode verwenden!

$week = Carbon::now()->addDays(7);  
+1

Ich benutzte Carbon und das hat gut für mich funktioniert –

+0

Gut zu hören .. :) –

+0

Werden Sie bitte meine Antwort als die richtige Antwort markieren? –

0

verwendete ich Kohlenstoff und das ist, was für mich

$week = Carbon::now()->subWeek(); 
$now = Carbon::now(); 

$domain_count = domain_details::get()->count(); 
$domain_alert = domain_details::where("domain_ex_date",">", $week) 
           ->where("domain_ex_date", "<" ,$now) 
           ->get();