Передача разделяемой переменной после входа в систему с Laravel 5.5 - PullRequest
0 голосов
/ 23 мая 2018

я создал метод для обмена данными со всеми видами моего приложения.

Для этого я создал класс EntityRepository, в котором я храню данные, которыми хочу поделиться со всеми представлениями.

Эти данные отображаются в макете, а не в представлении.

class EntityRepository
{
    use App\Valuechain;

    public function getEntities()
    {
        $vcs = Valuechain::select('valuechains.id', 'lang_valuechain.vcname', 'lang_valuechain.vcshortname')
            ->join('lang_valuechain', 'valuechains.id', '=', 'lang_valuechain.valuechain_id')
            ->join('langs', 'lang_valuechain.lang_id', '=', 'langs.id')
            ->where('langs.isMainlanguage', '=', '1')
            ->whereNull('valuechains.deleted_at')
            ->get();
        return $vcs;
    }
}

Когда я хочу отправить данные в методы, я просто вызываю метод getEntities ()... Например:

public function index(EntityRepository $vcs)
{
    $entitiesLists = $vcs->getEntities();

    // My code here ...
    return view('admin.pages.maps.sectors.index', compact('entitiesLists', 'myVars'));
}

В этом конкретном случае он работает нормально, и у меня нет проблем.Моя проблема касается целевой страницы после входа в систему.

В loginController:

Я определил переменную redirectTo следующим образом:

public $redirectTo = '/admin/home';

По конкретным причинам мне пришлось переопределить authentificated ()метод в LoginController, чтобы проверить, сконфигурировано ли мое приложение или его нужно настроить ...

protected function authenticated(Request $request, $user)
{

    $langCount = Lang::count();
    if ($langCount == 0) {
        return redirect()->to('admin/setup/lang');
    }
    else {
        //return redirect()->to('admin/home');
        return redirect()->action('BackOffice\StatsController@index');
    }
}

Соответствующий метод index () отправляет переменную в представление:

public function index(EntityRepository $vcs)
{
    $entitiesLists = $vcs->getEntities();
    return view('admin.home', compact('entitiesLists'));
}

Независимо от того, что я получаю, у меня появляется сообщение об ошибке ...

Неопределенная переменная: entityLists (Просмотр: C: \ wamp64 \ www \ network-dev \ resources \ views \ admin \ partials \ header-hor-menu.blade.php)

1 Ответ

0 голосов
/ 27 мая 2018

Я наконец решил эту проблему, изменив мои маршруты:

Route::group(['prefix' => 'admin'], function () {
    Route::get('/', function (){
        $checkAuth = Auth::guard('admin')->user();           
        if ($checkAuth) {
            return redirect('/admin/main');
        }
        else {
            return redirect('admin/login');
        }
    });
});

В моем loginController я изменил:

public $redirectTo = '/admin/home';

на:

public $redirectTo = '/admin/main';

Наконец:

protected function authenticated(Request $request, $user)
{

    $langCount = Lang::count();

    if ($langCount == 0) {
        return redirect()->to('admin/setup/lang');
    }
    else {
        return redirect()->to('admin/main');
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...