KO3 - Kohana 3 - Как я могу пройти данные $ _POST из контроллера / действия обратно на вид / форму, которая его называла?
-
26-09-2019 - |
Вопрос
Я пытаюсь проверить представление формы в Kohana 3. У меня есть форма :: Откройте точку для моего Action_Create в моем контроллере, который успешно проверяет данные, размещенные ему из формы на мой взгляд. Если данные пропускают проверку проверки, как предполагается новый элемент, и пользователь перенаправляется на элемент, который был только что создан. Это работает правильно. Однако, если данные не удаляются проверкой, я хотел бы, чтобы пользователь был направлен обратно на исходное представление / страницу, сохраняя при сохранении переменной, содержащей данные, которые были опубликованы, чтобы я мог отменить ошибки форму и отображения.
Короче говоря, как я могу пройти данные с вида -> Контроллер -> Оригинальный вид?
Спасибо всем!
Решение
Пользователь также поставлен Этот вопрос на форумах КоханыОтказ Те, кто ищет ответ на это, должен был посмотреть там.
Другие советы
Я предполагаю, что вы используете Controller_Template.
Файл Виды / form.php.:
// Set default variables if variables not passed to this view
$username = isset($username) ? $username : '';
echo Form::open('login');
// Input: username
echo Form::label('username', 'Username');
echo Form::input('username', $username);
echo isset($errors['username']) ? $errors['username'] : '';
// Input: username
echo Form::label('password', 'Password');
echo Form::input('password', $password);
echo isset($errors['password']) ? $errors['password'] : '';
echo Form::close();
Файл Просмотров / template.php.
<html>
<head><title>My Website</title></head>
<body>
<?php echo isset($content) ? $content : ''; ?>
</body>
</html>
Файл Классы / контроллер / user.php
Class Controller_User extends Controller_Template {
public $template = 'template';
public function index()
{
$this->template->content = $this->display_form('form');
}
public function login()
{
// Setup validation & rules here
// Check validation, assume $validation is Validation object
if ($validation->check()
{
// Validation succeeded. Do anything you want here
}
else
{
// Validation failed. Display form with entered values
$form_vars = $_POST;
$form_vars['errors'] = $validation->errors();
// Display form
$this->template->content = $this->display_form('form', $form_vars);
}
}
// Displaying form
private function display_form($form_file, $form_vars=NULL)
{
$form = View::factory($form_file);
if ($form_vars != NULL)
{
foreach($form_vars as $key => $value)
{
$form->$key = $value;
}
}
return $form;
}
}
Надеюсь, это поможет!