У меня проблема с данными на 404 странице.
handler.php
public function render($request, Exception $e)
{
if ($this->isHttpException($e)) {
$statusCode = $e->getStatusCode();
switch ($statusCode) {
case '404':
$obj = new \App\Http\Controllers\SiteController(new \App\Repositories\CatalogsRepository(new \App\Catalog));
$obj->template = env('THEME') . '.404';
return response($obj->renderOutput());
}
}
return parent::render($request, $e);
}
RenderOutput в SiteController
public function RenderOutput()
{
$catalogItems = $this->getCatalogs();
$cart_info = $this->CartInfo();
$menu = view(env('THEME') . '.menu')->with(['catalogs' => $catalogItems, 'cart_info' => $cart_info,'title'=>$this->title])->render();
$this->vars = array_add($this->vars, 'cart_info', $cart_info);
$this->vars = array_add($this->vars, 'menu', $menu);
return view($this->template)->with($this->vars);
}
Когда я вошел в систему, на обычных страницах у меня есть ссылки, такие как выход из системы, мои заказы, личная информация и т. Д., И если в корзине есть товары, то она показывает их количество и количество товаров, но когда появляется 404, это похоже на то, что я не вошел в систему ( иметь ссылки для регистрации и входа в систему) и иметь 0 товаров по 0 в корзине. Почему это происходит?
Это только так как Laravel начинает session
если маршрут было подобрано:
в вашем app/Http/Kernel.php
попробуйте добавить это к вашему $ промежуточного слоя :
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class
Других решений пока нет …