我有自定義錯誤頁面,例如 resources/views/errors/404.blade.php 一切正常,但本地化不適用于錯誤頁面。如果我更改網站語言,錯誤頁面仍以默認語言顯示,我嘗試了很多方法,但它不起作用,任何人都可以幫助我完成這項作業,在此先感謝。
我嘗試通過例外處理程式使其作業,但不知道該怎么做。我可以應用語言中間件是有人可以告訴我錯誤頁面的默認路由在哪里。
uj5u.com熱心網友回復:
您還可以重定向到App\Exceptions\Handler.php. 您也可以使用分配App::setLocale()。像這樣:
public function render($request, Throwable $exception)
{
App::setLocale('en_GB');
/** @var \Symfony\Component\HttpKernel\Throwable $e */
$e = $exception;
$statusCode = $e->getStatusCode();
return $this->isHttpException($exception) && $statusCode == 404 ?
response()->view('frontend.pages.404') :
parent::render($request, $exception);
}
uj5u.com熱心網友回復:
打開 app/exceptions/handler.php
在這里找到渲染函式粘貼
不要為了匯入這個特性
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
public function render($request, Exception $e)
{
if($request->hasCookie('language')) {
// Get cookie
$cookie = $request->cookie('language');
// Check if cookie is already decrypted if not decrypt
$cookie = strlen($cookie) > 2 ? decrypt($cookie) : $cookie;
// Set locale
app()->setLocale($cookie);
}
if($e instanceof NotFoundHttpException) {
return response()->view('errors.404', [], 404);
}
return parent::render($request, $e);
}
uj5u.com熱心網友回復:
謝謝你們 與你們進行了一些討論,解決了我的問題 我在對我有用的例外處理程式中獲得了會話的區域設定值 我正在回答它可能可以幫助其他人。以下是我在 App/Exception/Handler.php 中所做的事情
use Session;
public function render($request, Throwable $exception)
{
app()->setLocale(Session::get('locale'));
return parent::render($request, $exception);
}
我也搬家了
\Illuminate\Session\Middleware\StartSession::class,
從 web 組到 kernal.php 中的全域組
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/535703.html
標籤:拉维例外本土化处理程序
下一篇:如何使用CarbonPeriod將陣列從_date變為to_date并匹配另一個日期是否存在于陣列中或不存在于php,Laravel
