Codeigniter 3: заменить «поле обязательно для заполнения» на «поле не может быть пустым» - PullRequest
0 голосов
/ 28 апреля 2018

Я работаю над базовым приложением блога в Codeigniter 3.1.8.

У меня есть создать почтовую форму и обновить почтовую форму. У них обоих есть правила проверки. Для недопустимого поля формы «предупреждения» в форме обновления я хочу заменить выражение «поле обязательно для заполнения» на «поле не может быть пустым».

Вот код (пост контроллера):

public function edit($id) {
    $data = $this->Static_model->get_static_data();
    $data['post'] = $this->Posts_model->get_post($id);
    $data['tagline'] = 'Edit the post "' . $data['post']->title . '"';
    $this->load->view('partials/header', $data);
    $this->load->view('edit');
    $this->load->view('partials/footer');
}

public function update() {
    // Form data validation rules
    $this->form_validation->set_rules('title', 'Title', 'required');
    $this->form_validation->set_rules('desc', 'Short description', 'required');
    $this->form_validation->set_rules('body', 'Body', 'required');
    $this->form_validation->set_error_delimiters('<p class="error">', '</p>');

    $id = $this->input->post('id');
    if ($this->form_validation->run()) {
        $this->Posts_model->update_post($id, $data);
        redirect('posts/post/' . $id);
    } else {
        $this->edit($id);
    }
}

Если поле заголовка не заполнено, я хочу, чтобы появилось предупреждение: «Поле заголовка не может быть пустым».

Что мне добавить / изменить в методе обновления?

Ответы [ 2 ]

0 голосов
/ 28 апреля 2018

Мне удалось получить предупреждение о недопустимых полях следующим образом:

public function update() {
    // Form data validation rules
    $this->form_validation->set_rules('title', 'Title', 'required',  array('required' => 'The %s field can not be empty'));
    $this->form_validation->set_rules('desc', 'Short description', 'required',  array('required' => 'The %s field can not be empty'));
    $this->form_validation->set_rules('body', 'Body', 'required',  array('required' => 'The %s field can not be empty'));
    $this->form_validation->set_error_delimiters('<p class="error">', '</p>');

    $id = $this->input->post('id');
    if ($this->form_validation->run()) {
        $this->Posts_model->update_post($id, $data);
        redirect('posts/post/' . $id);
    } else {
        $this->edit($id);
    }
}
0 голосов
/ 28 апреля 2018

Вы можете сделать так:

в вашем методе обновления установите сообщение для обязательного типа этого:

$this->form_validation->set_rules('title', 'Title', 'required',
                        array('required' => 'The Title field can not be empty')
                );
$this->form_validation->set_rules('desc', 'Short description', 'required',
                        array('required' => 'Short description can not be empty')
               );

/* use same for other fields*/

для более: https://www.codeigniter.com/user_guide/libraries/form_validation.html#setting-validation-rules

...