Merhaba arkadaşlar,
Kendi projelerimde kullanmak için laravelin kendi auth paketini tümüyle kopyalayıp yeni bir paket oluşturdum. Auth adına aklınıza ne gelirse hiç değiştirmeden aynen kopyaladım. Trait, Notification, Guard, Provider, Hasher ve diğer ne kadar dosyası varsa. Birebir kopyalayıp paket haline getirdikten sonra sadece kullanıcı sorgusunu değiştirdim. Kullanıcıları id ile kontrol ederken ben guid ile kontrol edecek şekilde değiştirdim. Kullanırken de bir karmaşıklık olmasın diye pakette bazı sınıfların adına ön ek ekledim. Örneğin; MyHasher, MyHasherServiceProvider, MyUserProvider, MyAuthProvider gibi. Başka herhangi bir değişiklik yapmadım.
Şimdi sorunumu tarif edeyim

Herhangi bir controller dosyasında __construct içinde auth()->user() ile bilgilere ulaşamıyorum. Constructer içinde user'a ait bir bilgi boşsa hiç o controller dosyasında işlem yapmasına izin vermeden doğrudan yönlendirme yapacağım ama olmuyor. Birkaç controller dosyasında ortak kullanabileceğim bir trait yazdım. Controller içinde bu trait'i çağırıyorum, içindeki fonksiyonu kullanıp istediğim sonucuda elde edebiliyrum ama onun içinde de aut()->user() değerine erişemiyorum. Şimdilik sorgularımı sabit bir guid değeri üzerinden yapıyorum.
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\TestTrait;
class TestController {
use TestTrait;
public function __construct() {
$user = auth()->user(); // Burası çalışmıyor - null dönüyor
print_r($user);
}
public function index(){
$user = auth()->user();
print_r($user); // Burada sorun yok.
$biseyler = $this->test(); // trait içinden fonksiyon çağırıyorum
}
}
<?php
namespace App\Http\Controllers;
trait TestTrait {
public function test(){
$user = auth()->user(); // Burası çalışmıyor
$guid = $user->guid; // $user null olduğu için property bulunamadı diyor. Normal..
print_r($guid); // null
// $guid = 'xxxx'; -> Elle verince sorgu sorunsuz çalışıyor
return DB::query('select * from bişeyler where user_guid = "' . $guid . '"');
}
}
dd(auth()) ile geçerli auth bilgilerine baktığımda herhangi bir hata göremiyorum. Zaten hata olsa mantıken _construct dışındaki yerlerde de çalışmazdı.
Auth dışında yazdığım kodlar aynen böyle. Herhangi bir farklılığı yok. Bir yerlerde mantık hatası mı yapıyorum yoksa başka bir sebebi mi var ?