• 26-09-2021, 17:04:00
    #1
    Merhaba,

    Düz PHP ile yazdığım sistemi komple laravel'e geçiriyorum fakat bir bölümde takıldım kaldım. Firmaya ait ilanlara yapılan başvuruları sıralamam lazım. Bunun için iç içe sorgu yazmıştım, karışık olduğu için bu tool'u kullanarak laravel formatına dönüştürdüm.

    Dört adet tablo kullanılarak sorgu oluşturuluyor. DB::table() ilesadece bir tablo çekildiği için(sanırım) DB::raw("apply_job, users, model_job_ad, user_detail") şeklinde kullandım. Tam kod şu şekilde:

            $ad_requests = DB::table(DB::raw("apply_job, users, model_job_ad, user_detail"))
            ->select("apply_job.*", "user_detail.id as user_detail_id", "model_job_ad.title", "model_job_ad.slug as model_job_ad_slug")
            ->whereIn("apply_job.job_id", function($query) use($company){
                $query->from("model_job_ad")
                ->select("id")
                ->where("u_type", "=", 2)
                ->where("comp_id", "=", $company->id);
            })
            ->where("model_job_ad.id", "=", 'apply_job.job_id')
            ->where("apply_job.applicant", "=", 'users.id')
            ->where("user_detail.user_id", "=", 'users.id')
            ->where("apply_job.ok", "=", 0)
            ->get();
    Bu kod ile çıkan sorguyu hiçbir değişiklik yapmadan kopyalayıp phpmyadmin üzerinde çalıştırdığımda doğru şekilde bir adet sonuç geliyor fakat sitede dd() ile görmek istediğimde listenin içi boş görünüyor.

    IlluminateSupportCollection {#1374 ▼
    #items: []
    }
    DB::raw nedeniyle olabileceği söylendi fakat yeni başladığım için herhangi bir çözüm üretemiyorum. yardımcı olursanız sevinirim...
  • 26-09-2021, 17:10:49
    #2
    ->get() yerine ->toSql() fonksiyonunu kullanıp çıkan sonucu phpmyadmin üzerinden deneyebilir misiniz? Eğer sonuç gelmiyorsa çıkan sql üzerinden sorunu görüp düzeltme yapabilirsiniz
  • 26-09-2021, 17:13:20
    #3
    ArdaGnsrn adlı üyeden alıntı: mesajı görüntüle
    ->get() yerine ->toSql() fonksiyonunu kullanıp çıkan sonucu phpmyadmin üzerinden deneyebilir misiniz? Eğer sonuç gelmiyorsa çıkan sql üzerinden sorunu görüp düzeltme yapabilirsiniz
    Ek olarak kodu çok kötü çevirmiş. Tablolarınız için modeller oluşturup relationships kullanarak çekerseniz daha iyi olur.
  • 26-09-2021, 17:18:45
    #4
    Bu fonksiyonu kullanıp ? olan yerleri düzelttiğimde veri geliyor evet konuda da bahsetmiştim. Tablolar için modeller var ve join ile birleştiriyorum normalde fakat iç içe sorgu yazmam gerekiyor bu konuda da hiçbir fikrim olmadığı için bir yazılıma dönüştürttüm. Sorguyu doğru üretiyor ama site üzerinde çekemiyor...
    ArdaGnsrn adlı üyeden alıntı: mesajı görüntüle
    Ek olarak kodu çok kötü çevirmiş. Tablolarınız için modeller oluşturup relationships kullanarak çekerseniz daha iyi olur.