gpt4 book ai didi

php - 404 页面中的 Laravel 本地化

转载 作者:可可西里 更新时间:2023-11-01 00:57:10 24 4
gpt4 key购买 nike

你好,我对 Laravel 本地化有疑问

我已经制作了语言切换器,但当前选择的语言在 404 页面上不起作用(如果我在 Controller 中手动返回 abort(404) 它会起作用),它始终显示 config/app.php 中定义的默认语言环境的内容

我的中间件代码

<?php
namespace App\Http\Middleware;

use Closure;

class SetLanguageCookie
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if($request->hasCookie('language')) {
$cookie = $request->cookie('language');
app()->setLocale($cookie);

return $next($request);
} else {
$response = $next($request);
$response->withCookie(cookie()->forever('language', 'en'));
return $response;
}
}
}

有什么想法可以使它正常工作吗?那么所有自动显示的 404 页面都以当前选择的语言显示内容吗?

最佳答案

如果您有默认错误处理,请查找此文件:

应用\Exceptions\Handler.php

将渲染方法更改为如下所示:

    /**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Exception $e
* @return \Illuminate\Http\Response
*/
public function render($request, Exception $e)
{

if($e instanceof NotFoundHttpException)
{
if(\Request::hasCookie('language')) {
$cookie = \Request::cookie('language');
app()->setLocale($cookie);
//.... etc
}
}

return parent::render($request, $e);
}

关于php - 404 页面中的 Laravel 本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38334895/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com