KO3 - Kohana 3 - Как я могу пройти данные $ _POST из контроллера / действия обратно на вид / форму, которая его называла?

StackOverflow https://stackoverflow.com/questions/3418933

Вопрос

Я пытаюсь проверить представление формы в 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;

    }

}

Надеюсь, это поможет!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top