Передача валидации в качестве данных флеш-сессии в Laravel: Сериализация закрытия не разрешена

Принимая следующий класс:

class SessionHelper
{
public static function GetViewModel()
{
return unserialize( Session::get( 'viewModel' ) );
}

public static function StoreViewModel( $object )
{
return Session::flash( 'viewModel', serialize( $object ) );
}
}

Представьте, что у меня есть метод контроллера регистрации с этим в:

public function PostRegister()
{
$validator = Validator::make(
$values,
$rules,
$messages
);

if( $validation->fails() )
{
$viewModel->User->Password = NULL;
$viewModel->Validation = $validation->messages();
SessionHelper::StoreViewModel( $viewModel );

return Redirect::action( "AuthenticationController@GetRegister" );
}
}

Это дает следующую ошибку:

      Serialization of 'Closure' is not allowed

Open: C:\xampp\htdocs\...\app\models\Helpers\SessionHelper.php

5.    public static function GetViewModel()
6.    {
7.        return unserialize( Session::get( 'viewModel' ) );
8.    }
9.
10.    public static function StoreViewModel( $object )
11.    {
12.        return Session::flash( 'viewModel', serialize( $object ) );
13.    }
14.}

Я хочу иметь возможность передать объект проверки в другой метод контроллера, используя функции Redirect :: action … Есть идеи, как мне это сделать?

public function GetRegister()
{
if( !$viewModel = SessionHelper::GetViewModel() )
{
$viewModel = new RegisterViewModel();
}

return View::make( "Authentication/Register", ModelHelper::Prepare( $viewModel ) );
}

0

Решение

Вам, вероятно, придется сериализовать только массив сообщений:

$viewModel->Validation = $validation->messages()->all();
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]