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.
Laravel | Array verisinin tüm controllerlardan erişilebilmesi
4
●142
- 29-04-2022, 12:49:34Viewlarda 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.Polat adlı üyeden alıntı: mesajı görüntüle
Düzeltme: BaseControllerda da Auth::user() ile veriyi çekemedim. Null döndü. - 29-04-2022, 13:05:59Şö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:30Teşekkür ederim hocam. İnternet problemi nedeniyle deneyip cevap yazamadım. Bugün deneyeceğimPolat adlı üyeden alıntı: mesajı görüntüle
ama aklıma böyle geldi.