Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?

Merhaba,
Aşağıdaki gibi; Controller'dan "abc" isimli sayfayı çekip, blade'e gönderiyorum.

$slug="abc";
$page = Page::with(['albums.files','collections.products'])->where('slug', $slug)->first();

Sonra blade içerisinde abc değil de xyz isimli db'de var olan bir sayfayı firstWhere ile süzdüğümde o veriye ulaşabiliyorum.
$page değişkeni içerisinde xyz sayfası yok ama ulaşabiliyorum. Nasıl olabiliyor?
firstWhere database'den veri çekmiyordur herhalde değil mi?

@php
$page = $page->firstWhere('slug', 'xyz');
@endphp

Çözdüm gibi 🙂
get() kullanılmayınca controller'dan koleksiyon değil model dönüyormuş.
dolayısı ile firstWhere yapınca veritabanından sorgulamış oluyorum.

Yazmışsınız ama kısaca belirteyim;

  • First ile çekince Page modelinin bir instance'ını (örneğini) dönmüş olursunuz.
  • Get ile ise Collection objesi döner.

Model olarak dönerse, blade tarafında $page->firstWhere('slug', 'deneme'); ile istediğim başka sayfaları da çekebiliyorum. (güzel bir durum)
Bu durumda model olarak dönmesi her zaman iyi değil midir?

    yusufc Bu, yanlış bir kullanım olur. Blade sayfaları içinde sorgu yapmamanız lazım. Blade kısmı sadece veriyi ekranda göstermek için bir şablon olarak kalmalı.

    12 gün sonra