Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 5.2:重定向错误不起作用_Laravel_Laravel 5.2 - Fatal编程技术网

Laravel 5.2:重定向错误不起作用

Laravel 5.2:重定向错误不起作用,laravel,laravel-5.2,Laravel,Laravel 5.2,我目前正在努力解决一个拉威尔问题,我自己也无法解决。如果我使用withErrors()传递错误,则错误不会传递到错误包($errors) 我的控制器(FormController): public function contact(Request $request) { $validator = Validator::make($request->all(), [ 'name' => 'required', 'emai

我目前正在努力解决一个拉威尔问题,我自己也无法解决。如果我使用withErrors()传递错误,则错误不会传递到错误包($errors)

我的控制器(FormController):

public function contact(Request $request) {

        $validator = Validator::make($request->all(), [
            'name' => 'required',
            'email' => 'required|email',
            'message' => 'required',
        ]);

        if ($validator->fails()) {
            return redirect()->back()->withErrors($validator)->withInput($request->all());
        }

        return redirect()->back();
    }
Route::group(['middleware' => 'web'], function(){
    Route::post('/contact', 'FormController@contact');
});
问题是,withInput()也不起作用。问题从何而来?我感谢你的帮助

(已定义路由的一部分)。php:

public function contact(Request $request) {

        $validator = Validator::make($request->all(), [
            'name' => 'required',
            'email' => 'required|email',
            'message' => 'required',
        ]);

        if ($validator->fails()) {
            return redirect()->back()->withErrors($validator)->withInput($request->all());
        }

        return redirect()->back();
    }
Route::group(['middleware' => 'web'], function(){
    Route::post('/contact', 'FormController@contact');
});
会话配置

return [
    'driver' => env('SESSION_DRIVER', 'memcached'),
    'lifetime' => 120,
    'expire_on_close' => false,
    'encrypt' => false,
    'files' => storage_path('framework/sessions'),
    'connection' => null,
    'table' => 'sessions',
    'lottery' => [2, 100],
    'cookie' => 'session',
    'path' => '/',
    'domain' => null,
    'secure' => false,

];

在Laravel 5.2中,您需要在路由中使用
web
中间件将错误传递给视图

Route::group(['middleware' => ['web']], function () {
    Route::get('/', function() {
        return view('welcome');
    });
});

不要将任何内容传递给withInput

 if ($validator->fails()) {
      return redirect()->back()->withErrors($validator)->withInput();
 }
并使用旧函数获取闪存数据

$name = $request->old('name');


如果您重定向到的控制器也在使用
withErrors()
函数,则
redirect()->back()->withErrors($validator)
中的错误消息将被覆盖

但是,旧消息仍在会话中。因此,您仍然可以通过
会话('errors')读取和显示它们。

@if($errors->any())
    @foreach($errors->all()作为$error)
  • {{$error}}
  • @endforeach
@elseif(null!==会话('errors')&&session('errors')->any())
    @foreach(session('errors')->all()作为$error)
  • {{$error}}
  • @endforeach
@恩迪夫
会话对您有用吗?尝试重定向路由或url,而不是back@matiit该站点的其余部分正在进行会话。当我检查带有debugbar的POST to contact()时,“errors”出现在带有正确错误的会话中。@ImtiazPabel我尝试了此操作,但不幸的是没有对此问题进行任何更改。。请尝试
…->withErrors($validator->errors())->…
感谢您的帮助,不幸的是我已经在使用“web”中间件组。。。我听说在中间件组之间交换会话时出现问题,但我只使用“web”中间件组。我尝试过,但没有任何运气。。。我认为这是一个会话问题,但会话按预期进行。