Что такое хороший способ обработки данных в Codeigniter? - PullRequest
4 голосов
/ 23 июля 2010

т.е. Вы бы порекомендовали мне использовать один метод контроллера, как это:

function save()
{
    if(!is_bool($this->input->post('')))
    {
        $post_data = $this->input->post('');
        $this->mymodel->save($post_data);
    }
    $this->load->view('myview');
}

Или вы бы порекомендовали написать его двумя способами?

function save()
{
    if(!is_bool($this->input->post('')))
    {
        $post_data = $this->input->post('');
        $this->mymodel->save($post_data);
    }
    redirect('controller/method2')
}

Перенаправление - это решающее отличие. Он запрещает повторное предоставление обновлений, например.

Как ты это делаешь? Есть ли другой лучший способ?

Ответы [ 3 ]

11 голосов
/ 23 июля 2010

Вы должны всегда перенаправить при успешной публикации формы.

8 голосов
/ 21 августа 2011

Вы должны всегда перенаправить на успешную форму сообщения.

Абсолютно. Для всех, кто интересуется почему это так, вот несколько причин:

  • Избегайте «повторных представлений» . Когда-нибудь было, что, когда вы невинно нажимали кнопку «Обновить» или нажимали кнопку «Назад» и wham , все повторно отправлялось?
  • Дружелюбие к закладкам . Если ваш пользователь добавляет страницу в закладки, вероятно, вы хотите, чтобы он вернул туда, где он ее создал, а не пустую форму (перенаправление заставляет их добавить в закладки страницу подтверждения / целевой страницы.

Дополнительное чтение: http://en.wikipedia.org/wiki/Post/Redirect/Get

3 голосов
/ 23 июля 2010

Как сказал Арен Б., перенаправление - это хорошая идея, но я хотел бы изменить в вашем коде то, что проверка почтовых данных должна выполняться с помощью функции проверки формы.Это не только более многократно, но и код станет короче.

Если вы хотите обрабатывать AJAX-запросы, вам нужно будет вернуть что-то еще, кроме via или перенаправления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...