Laravel url 先前在页面重新加载后返回同一页面

标签 laravel laravel-5

我尝试通过多种方法访问 Laravel 5.3 Homestead 上的上一个 URL,但每次我在第一次请求时都得到正确的上一页,然后在刷新页面后得到相同的页面。

我正在使用中间件在访问页面之前检查语言

URL::previous();
// or
back()->getTargetUrl();

语言中间件

    public function handle($request, Closure $next, $guard = null) {
    $locale = $request->locale;
    $segments = $request->segments();
    $lang_sess = $request->session()->get('language');

    if (!array_key_exists($locale, Config::get('app.locales'))) :
        if (count($segments) > 1):
            $segments[0] = ($lang_sess == "") ? Config::get('app.fallback_locale') : $lang_sess;
            $re_to = implode('/', $segments);
        else:
            $locale = $request->session()->get('language', 'en');
            $re_to = "/$locale/" . implode('/', $segments);
        endif;
        return Redirect::to($re_to);
    endif;
    $request->session()->put('language', $locale);
    App::setLocale($locale);
    return $next($request);
}

[已解决]

由于我仍在开发我的网络应用程序,我没有通过“href”链接进入页面,而是通过复制 URL 并将其粘贴到浏览器中来输入它,这会导致 URL::previous 在之后发生更改重新加载页面..

案件已结,感谢所有回复和关注的人。

最佳答案

“以前的 URL”存储在 session 中。每次 URL 更改时,session()->get('_previous')['url'] 都会更改为以前的 url。

这样进行逻辑:

if (url()->current() == url()->previous()) {
    url()->setPreviousUrl('xxx') // or other logic here
}

关于Laravel url 先前在页面重新加载后返回同一页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45761477/

相关文章:

php - Laravel 将数组放入选择框

php - Laravel 使用 concat with pluck 方法

Laravel 5.7 - 数据透视表 Attach()

mysql - 根据过滤器数据查询数据库中的产品重复

laravel - 为什么 Vue.js 在 Laravel 5.6 中不显示任何内容?

laravel - 在 elasticsearch-laravel 中更新记录;

php - 使用唯一字段更新 Laravel 模型

php - Laravel:通过 AJAX 无表单发送数据到 Controller

php - 使用 laravel 5 在谷歌云平台上配置 1and1 邮件

php - Laravel 5 - 在 Rest API 服务器上自定义 JSON 响应