Selamlar,
Blade template içinde şu sorguyu nasıl yazabilirim; eğer created_at 5 günden az ise ?
@if ($element->created_at < 5 days)
Yeni
@endif
Bu sorguyu doğru bir şekilde nasıl yazabilirim ?
Son düzenleyen neri (11.02.2019 13:01:11)
Çevrimdışı
<tr @if (\Carbon\Carbon::now()->diffInDays(\Carbon\Carbon::parse($teklifler->GelenTeklifTarihi)) < 1) class="white item-area" @else class="red item-area" @endif > projemde carbon kullanmıştım carbon::addDays(5) dersen olur.
Mister Koder
Çevrimdışı
<tr @if (\Carbon\Carbon::now()->diffInDays(\Carbon\Carbon::parse($teklifler->GelenTeklifTarihi)) < 1) class="white item-area" @else class="red item-area" @endif > projemde carbon kullanmıştım carbon::addDays(5) dersen olur.
İşe yaradı üstad teşekkür ederim.
Çevrimdışı
View içine bu kadar php kod yazılması benim hoşuma gitmiyor, model içinde scope, getter ve private method yazılabilir.
Çevrimdışı
Saçma view böyle bir iş yapamaz.sonra o viewin controllercüden farkı olmuyor.Kurguyu böyle yapamazsınız.
Laravel does not save you. Php knowledge only save you. Do not become a Laravel programmer, just the opposite,become php developer.
Çevrimdışı
Saçma view böyle bir iş yapamaz.sonra o viewin controllercüden farkı olmuyor.Kurguyu böyle yapamazsınız.
Çözüm de paylaşmalısın, ya da öneri.
Çevrimdışı
Saçma view böyle bir iş yapamaz.sonra o viewin controllercüden farkı olmuyor.Kurguyu böyle yapamazsınız.
(@mgsmus) Arakdaşımız vakit ayırıp yol göstermiş ki gösterdiği yol yanlış değil! Bizde bu durumda kalkıp sırf hoşumuza gitmedi diye verdiği cevabı saçma diye niteleyelim...
Sizin dem vurduğunuz nokta mvc mimarisine sadık kalmak, eyvallah! Ama her işin bir adabı bir edebi vardır bunu unutmamak lazım gelir.
Hem madem view böyle bir iş yapamaz neden blade direktifleri vardır birde bu şekilde bakalım olaya. Bu programcının tercihine kalmış, kendisine göre hangi yol kolay geliyorsa o yolu izliyor.
Cevap belkide şöyle olmalıydı:
Bakınız şu şekilde bir yaklaşım da var, bu yaklaşım aynı zamanda mvc mimarisine daha uygun bir kullanım. vs vs..
Bence saçma olan sizin cevabınız olmuş
Vesselam.
Çevrimdışı
Örnek yazdım bu durum için:
Model içine
public function checkForNew($days = 5)
{
return \Carbon\Carbon::parse($this->attributes['created_at'])->diffInDays() < $days
? 'Yeni'
: '';
}
ekledim ve bunu blade'de
{!! $element->checkForNew() !!}
veya
{!! $element->checkForNew(14) !!}
şeklinde kullandım.
Çevrimdışı
created_at ve updated_at zaten Carbon objesi olduğu için ekstra bir işlem yapmanıza gerek yok aslında:
public function checkForNew($days = 5)
{
return $this->created_at->diffInDays() < $days ? 'Yeni' : null;
}
@Kevin-Mitnick'in verdiği örnekte mesela GelenTeklifTarihi alanını Model'de tarih olarak belirtebilir:
protected $dates = [
'GelenTeklifTarihi'
];
Böylece şablon içerisinde
<tr class="{{ $teklifler->GelenTeklifTarihi->diffInDays() < 1 ? 'white ': 'red' }} item-area">
şeklinde kullanabilir ya da sizin yaptığınız gibi bir yöntem oluşturabilir.
Çevrimdışı