Я создаю собственное приложение PHP MVC, которое проверяет ввод данных пользователем, и если что-то не так, они должны быть перенаправлены обратно с переменной, содержащей все ошибки проверки.
вот как я хочу это сделать, и я пытаюсь подражать Laravel здесь LOL:
функция контроллера, которая использует функцию черты для проверки почтового запроса
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();
}
затем я пытаюсь зарегистрировать их в переменной сеанса ошибок, но это не сработает, потому что я хочу проверять наличие ошибок, как мы делаем в laravel, как это
если ($ errors-> любой ())
сделать что-нибудь ....
как перенаправить назад и установить переменную ошибок, к которой можно получить доступ на этой задней странице.