2016-04-05 16 views
2

Tarihin son kullanma tarihini bugünkü tarihle karşılaştırarak bir nesne koleksiyonunu filtrelemeye çalışıyorum ancak işe yaramıyor. Herkes kodlara bakabilir. Eminim burada bir şey özlüyorum. Her yeri aradım ve birçok örnek buldum ama hiçbiri çalışmıyor.Tarihleri ​​karşılaştırarak bir görünüm içinde bir laravel koleksiyonuna filtre uygulayabilirsiniz?

Bu, yalnızca para cezası ile uyumludur, ancak 2012 için ayarlanan son kullanma tarihi olan 9 nesnenin bir listesiyle, koleksiyondan herhangi bir sonuç döndürmez.

Kontrolör

public function classifieds() 
{ 
    $myclassifieds = Auth::user()->classifieds; 
    return view('account.classifieds')->with(['allclassifieds'=>$myclassifieds]); 
} 

Görünüm

@if(count($allclassifieds->where('expired_on','<', Carbon\Carbon::now())) > 0) 
//Something here 
@endif 
+0

söylemek zor, iyi görünüyor bir Karbon örneğini döndürür. 'Expired_on' öğesinin doğrudan her koleksiyon nesnesinin ilk düzeyinde mevcut olduğundan emin misiniz? Ayrıca, '()' karşılaştırması sıkıdır. Carbon :: now() size tarih verir - ve bu sorunlara neden olabilir, emin değilsiniz, 'expired_on' bir tarih olabilir. – lesssugar

+0

Bu, içinde bir nesne bulunan koleksiyondur. Expires_on bir tarih saat nesnesi çok tuhaf. [ { "id": 31 "kullanıcı adı", "test", "tipi": 1, "eylem": "satmak", "maincat": "antik", "başlığı": "test", "description": "test", "extratextfield": null, "lowerprice": 1, "Partex": 0, "koşul": "kullanılmış", "fiyat": "680 ", " resimleri ":" 1 ", " e-posta ":" [email protected] ", " yorum ": 1, " created_at ":" 2016-04-03 19:00:26 ", "updated_at": "2016-04-03 19:00:26", "expires_on ":" 2016-03-14 19:00:26 " } ] – matpulis

+0

Kodunuzda," expired_on "var. Bu yazıya yazı yazarken veya orijinal koddaki yazım hatası yazılır mı? ;) Nesne 'expires_on' içinde tutar. – lesssugar

cevap

1

Erişim değeri expired_on doğrudan

@foreach($allclassifieds as $classified) 
    @if($classified->expired_on > Carbon\Carbon::now()) 
     // show classified 
    @endif 
@endforeach 

Sen expired_on özelliğini bir Ca yapabilirsiniz Modelinizdeki $dates diziye ekleyerek varsayılan olarak örneğini rbon:

protected $dates = ['created_at', 'updated_at', 'expired_on']; 

şimdi expired_on hep koleksiyonunu kendisi görmeden

+0

görünümünde iyi yazılmış olduğunu Bu aslında işe yarar ama başarılı olmak için Carbon :: parse() $ classified-> expired_on var. Tam olarak ne arıyorum değil ama bu şekilde – matpulis

+0

@matpulis güncellendi cevap. Aradığın şeyi detaylandırır mısın? –

+0

Koleksiyonlardaki kaç öğenin bugün için daha küçük bir süre geçtiğini görmek istiyorum. aslında bir döngü yapmak zorunda kalmadan. Metodun işe yaramadıysa. Teşekkür ederim – matpulis