Jak ominać brak fasady Auth w Implicit Route Binding?

0

Problem został opisany tutaj, więc nie będę kopiował.

Niestety nie mam pomysłu jak to ominąć. Z tego co wyczytałem z debug_backtrace laravel najpierw dispatchuje i pobiera model, a dopiero później startuje z sesją (brak zmiennej $_SESSION w globalnym scopie). Gdybym miał ręcznie wszędzie dopisywać ten scope to idzie się pochlastać.

@mr_jaro ratuj :)

0

No właśnie opisz dokładniej swój problem, po co ci to potrzebne, bo może źle kombinujesz i jest do tego zupełnie inny mechanizm przygotowany.

0

Część danych (pytań) jest dostępna tylko dla userów zalogowanych (flaga is_login_required).

Upierdliwe jest ustawianie tego w sporej ilości miejsc pojedyńczym scopem (np. scopeForGuests). Jak pobieram liczbę pytań dla danej kategorii to też się robi ciekawie, bo jak jest global scope to z automatu mi je ogranicza i wystarczy sama relacja.

public function questionsCount()
    {
        return $this->questions()
            ->selectRaw('category_id, count(*) as count')
            ->groupBy('category_id');
    }

    public function getQuestionsCountAttribute()
    {
        $relation = $this->getRelation('questionsCount')->first();
        return !empty($relation) ? $relation->count : 0;
    }

Chciałbym, żeby domyślnie dla niezalogowanych użytkowników liczba pytań była ograniczana do tych, które mogą widzieć, czyli is_login_required = false. Gdybym miał dostęp do fasady Auth w momencie bootowania modelu to by było wszystko fajnie, ale niestety tak nie jest i obawiam się, że ręcznie będę musiał dodawać ten scope w każdym miejscu w systemie, bo w 99% przypadków to ograniczenie jest potrzebne.

1

Ja w takiej sytuacji bym zrobił zwykłego scopa i pilnował w każdym kolejnym zapytaniu lub użył prezentera albo fractala, tam też można odfiltrować co niepotrzebne. Osobiście nigdy nie miałem potrzeby stosować global scopy... tzn miałem jak przepisywałem system na laravela i trzeba było odsiać archaiczne dane, ale nigdy nie stosowałem i raczej nie stosuje się tego do bardziej dynamicznych warunków.

1 użytkowników online, w tym zalogowanych: 0, gości: 1