PHP,如何使用一些变量将用户重定向到上一页

时间:2019-07-07 19:27:25

标签: php laravel frameworks

我正在构建一个自定义PHP MVC应用程序,该应用程序将验证用户输入,如果出现错误,应使用变量将其重定向回,以保存所有验证错误。

这是我想做的方式,我想在这里模仿laravel:

使用特征函数来验证发布请求的控制器函数

public function store(Request $request)
    {
        $this->validate($request, [
            'name' => 'required|min:3|max:100|unique:categories'
        ]);

        $category = Category::create([
            'name' => $request->name,
            'slug' => slugify($request->name)
        ]);

        return Redirect::back();
    }

这是验证方法

public function validate($data, $policies)
    {
        foreach($policies as $column => $rules)
        {
            if (property_exists($data, $column))
            {
                $array_of_rules = explode("|", $rules);
                foreach (array_reverse($array_of_rules) as $method_name)
                {
                    if (strpos($method_name, ":") == false) {
                        $this->$method_name($column, $data->$column);
                    } else {
                        list($method, $param) = explode(":", $method_name);
                        $this->$method($column, $data->$column, $param);
                    }
                }
            }
        }

        $errors = new Errors($this->errorMessages);

        if ($this->hasValidationErrors)
        {
            Session::set('errors', $errors);
            Redirect::back();
        }
    }

我检查validate方法内是否有错误

$errors = new Errors($this->errorMessages);

        if ($this->hasValidationErrors)
        {
            Session::set('errors', $errors);
            Redirect::back();
        }

然后我尝试将它们注册到error会话变量中,但这将无法正常工作,因为我想像在laravel中一样检查错误

if($ errors-> any())

做点什么......

如何重定向回并设置可以在该后页中访问的错误变量。

0 个答案:

没有答案