laravel-admin 提交数据后返回登录页 应该如何实现

<?php

namespace App\Admin\Forms\Backstags;

use Encore\Admin\Widgets\Form;
use Illuminate\Http\Request;
use App\Admin\Models\AdminSetting;
use Encore\Admin\Facades\Admin;

class admincp_config_Config extends Form
{
    public function __construct()
    {
        $this->title = trans('admin.backstags.config.table_name_Config');
        parent::__construct();
    }

    /**
     * The form title.
     *
     * @var  string
     */
    public $title;

    /**
     * Handle the form request.
     *
     * @param  Request $request
     *
     * @return  \Illuminate\Http\RedirectResponse
     */
    public function handle(Request $request)
    {
        $validateRules = [
            'routeprefix' => '',
        ];
        $this->validate($request,$validateRules);
        $data = $request->except('_token');

        foreach($data as $skey => $svalue)
        {
            AdminSetting::set($skey, $svalue);
        }

        AdminSetting::setEnvParams
        ([
            'ADMIN_ROUTE_PREFIX' => $request->routeprefix,
        ]);

        AdminSetting::setcache();

        admin_success(trans('admin.update_succeeded'));

        if ($data['routeprefix'] == env('ADMIN_ROUTE_PREFIX'))
        {
            return back();
        } else {

            Admin::guard()->logout();
            return back();
        }
    }

    /**
     * Build a form here.
     */
    public function form()
    {
        $this->text('routeprefix', trans('admin.backstags.config.config_route_prefix'))->setWidth(2, 2);
        $this->disableReset();
    }

    /**
     * The data of the form.
     *
     * @return  array $data
     */
    public function data()
    {
        return [
            'routeprefix' => AdminSetting::get('routeprefix'),
        ];
    }
}

这是一个完整的选项卡表单。
form() 里通过后台提交的表单内容来修改后台的地址。
现在下面都没有问题,问题就在于
if ($data['routeprefix'] == env('ADMIN_ROUTE_PREFIX'))
这里。

这里判断当前提交过来的数据,是否和之前的数据相同。如果相同那么就返回 也就是执行return back();
如果不同。就退出登录,并且返回到指定地址(这里的地址是修改后的地址)
但是由于使用的是
use Encore\Admin\Facades\Admin;(vendor\encore\laravel-admin\src\admin.php)
的guard()。导致执行到这里就结束了。就算把函数里的内容提取出来放到我的选项卡表单中,也不行。最终只停留到http://127.0.0.1/admin/_handle_form_ 而且这里的admin还是旧的。

请教这个功能应该怎么实现。

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
最佳答案

哪位大神解答一下。

2年前 评论
讨论数量: 2

改用admin_script,手动增加点击ajax事件,返回后用js location跳转到页面吧。之前我也想提交后redirect,但是dcat-admin的pjax刷新不到新页面

2年前 评论

哪位大神解答一下。

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!