Giriş yapmadınız.

Duyuru

TÜRKÇE KİTAP DUYURUSU:
Laravel 5 : Laravel 5.1 Güzelliği (Türkçe)
Vue.js 2 : Vue.js 2 Majesteleri (Türkçe)

#1 11.02.2019 13:00:44

neri
Üye
Kayıtlı: 24.07.2018
Mesajlar: 29

If sorgusuyla view içinde zaman hesaplama

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ışı

#2 11.02.2019 13:10:32

Kevin-Mitnick
Üye
Kayıtlı: 26.05.2016
Mesajlar: 452

Yanıt: If sorgusuyla view içinde zaman hesaplama

<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ışı

#3 11.02.2019 13:27:08

neri
Üye
Kayıtlı: 24.07.2018
Mesajlar: 29

Yanıt: If sorgusuyla view içinde zaman hesaplama

Kevin-Mitnick yazdı:

<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ışı

#4 11.02.2019 17:57:04

sineld
Yönetici
Yer: Bursa
Kayıtlı: 26.12.2012
Mesajlar: 1,418
Website

Yanıt: If sorgusuyla view içinde zaman hesaplama

View içine bu kadar php kod yazılması benim hoşuma gitmiyor, model içinde scope, getter ve private method yazılabilir.

Çevrimdışı

#5 11.02.2019 22:00:08

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 1,496
Website

Yanıt: If sorgusuyla view içinde zaman hesaplama

@if($element->created_at->diffInDays() < 5)
    Yeni
@endif

Çevrimdışı

#6 12.02.2019 08:55:27

deathisonitsway
Üye
Kayıtlı: 01.02.2016
Mesajlar: 394

Yanıt: If sorgusuyla view içinde zaman hesaplama

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ışı

#7 12.02.2019 12:11:24

sineld
Yönetici
Yer: Bursa
Kayıtlı: 26.12.2012
Mesajlar: 1,418
Website

Yanıt: If sorgusuyla view içinde zaman hesaplama

deathisonitsway yazdı:

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ışı

#8 12.02.2019 13:41:15

assoft
Üye
Kayıtlı: 09.03.2014
Mesajlar: 51

Yanıt: If sorgusuyla view içinde zaman hesaplama

deathisonitsway yazdı:

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ş smile

Vesselam.

Çevrimdışı

#9 13.02.2019 10:39:05

sineld
Yönetici
Yer: Bursa
Kayıtlı: 26.12.2012
Mesajlar: 1,418
Website

Yanıt: If sorgusuyla view içinde zaman hesaplama

Ö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ışı

#10 13.02.2019 11:32:31

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 1,496
Website

Yanıt: If sorgusuyla view içinde zaman hesaplama

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ışı

Forum alt kısmı