• 29-04-2022, 12:42:31
    #1
    Merhaba arkadaşlar,

    Laravel'de çözüm üretemediğim bir durum var. Daha doğrusu tam olarak laravelin yapısını bilmediğimden kaynaklanıyor. Her sayfa yenilendiğinde oturum açan kişinin bilgisini Auth:: ile çekip bir kaç veri ekleyerek array oluşturmak ve bu veriye tüm controllerlar üzerinden erişebilmek istiyorum.

    AppServiceProvider denedim ama bu alanda Auth çalışmadı.
    Middleware katmanında denedim ama controllera veri boş geldi.

    Bu işin doğrusu hakkında bilgisi olan var mı? Düz php yazarken init.php isminde dosya oluşturup, bunu header.php ye yerleştirerek çözebiliyorduk (veya direk header.php'ye de ekleyebiliyorduk) ama laravelde doğru yolunu bulamadım.
  • 29-04-2022, 12:46:11
    #2
    Bu verilere tüm controller'da mı erişmek istiyorsun? Yoksa View'larda mı?
  • 29-04-2022, 12:49:34
    #3
    Polat adlı üyeden alıntı: mesajı görüntüle
    Bu verilere tüm controller'da mı erişmek istiyorsun? Yoksa View'larda mı?
    Viewlarda ihtiyacım olmayabilir. Controllerlarda erişsem yeterli olacaktır diye düşünüyorum. Aklıma şu an baseController geldi. Sanırım orada işlemi yapsam erişebilirim diye düşündüm ama yinede laravelde bu işin doğrusu ne ise onu öğrenmek isterim.

    Düzeltme: BaseControllerda da Auth::user() ile veriyi çekemedim. Null döndü.
  • 29-04-2022, 13:05:59
    #4
    Şöyle bir şey yapabilirsin.

    app/Providers/ControllerAuthServiceProvider.php dosyasını oluştur.

        public function register()
        {
            $this->app->bind(stdClass::class, function () {
                $user = [
                    'model' => Auth::user(),
                    'extra' => [
                        'source' => 'r10.net'
                    ]
                ];
                return (object)$user;
            });
        }
    register kısmına bu şekilde veri modelini yap.

    config/app.php dosyasında Provider'i register et.

    istediğin herhangi bir controllerda;

    public function index(\stdClass $auth){}
    gibi bir çağırım yaparsan şayet senin manipüle edilmiş verilerin gelir.

    doğrusu bu mudur bilmiyorum ama aklıma böyle geldi.

    Edit: bununla ilgili detaylı şeylere;
    https://laravel.com/docs/9.x/container erişebilirsin.
    Edit2: Provider function içerisinde Auth::check(); kontrolünü de yapabilirsin bu arada.
  • 02-05-2022, 14:45:30
    #5
    Polat adlı üyeden alıntı: mesajı görüntüle
    Şöyle bir şey yapabilirsin.

    app/Providers/ControllerAuthServiceProvider.php dosyasını oluştur.

        public function register()
        {
            $this->app->bind(stdClass::class, function () {
                $user = [
                    'model' => Auth::user(),
                    'extra' => [
                        'source' => 'r10.net'
                    ]
                ];
                return (object)$user;
            });
        }
    register kısmına bu şekilde veri modelini yap.

    config/app.php dosyasında Provider'i register et.

    istediğin herhangi bir controllerda;

    public function index(\stdClass $auth){}
    gibi bir çağırım yaparsan şayet senin manipüle edilmiş verilerin gelir.

    doğrusu bu mudur bilmiyorum ama aklıma böyle geldi.

    Edit: bununla ilgili detaylı şeylere;
    https://laravel.com/docs/9.x/container erişebilirsin.
    Edit2: Provider function içerisinde Auth::check(); kontrolünü de yapabilirsin bu arada.
    Teşekkür ederim hocam. İnternet problemi nedeniyle deneyip cevap yazamadım. Bugün deneyeceğim