Передача сообщений об ошибках валидации в шаблон smarty в codeigniter - PullRequest
0 голосов
/ 09 марта 2019

Мне нужна помощь с передачей ошибок валидации шаблону smarty (3.1.33) в codeigniter (версия 3.1.8).

Кажется, что в шаблоне smarty нельзя напрямую использовать функцию codeigniter изпомощник по формам, такой как validation_errors() или form_error('fieldname'). По крайней мере, в моем случае что-то подобное в шаблоне smarty {validation_errors()} не дает никакого результата.

Поэтому я попытался получить сообщение об ошибке в контроллере с помощью$this->form_validation->error_array() и присвойте их переменной, которая назначена шаблону с помощью метода $ this-> smartyci-> assign .Но в шаблоне не отображается сообщение об ошибке, хотя я отправил пустую форму.

Если у вас есть идеи, как это сделать, пожалуйста, дайте мне знать.

Большое спасибо,

Ниже мой код:

Контроллер ( Home.php ):

class Home extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();

        $this->load->library( 'smartyci' );
        $this->load->library('form_validation');
        $this->load->helper('form');
    }

    public function index()
    {
        $title = "Court Monitor";
        $date = date("Y");
        //$this->smartyci->useCached('home.tpl' );
        $this->smartyci->assign('data', array(
            "logged_in" => false,
            "date" => $date,
            "title" => $title
        ));
        $this->smartyci->display('home.tpl');
        //print_r($result);
    }

    ............

    public function register_email ()
    {
        $title = "Registration";
        $date = date("Y");

        $this->form_validation->set_rules('nume', "Nume", "required");
        $this->form_validation->set_rules('prenume', "Prenume", "required");
        $this->form_validation->set_rules('email', "Email", "required|valid_email");

        $this->form_validation->set_message('required', 'This field is required');

        if ($this->form_validation->run() === false) {

            $this->smartyci->assign('data', array(
                "logged_in" => false,
                "date" => $date,
                "title" => $title,
                "errors" => $this->form_validation->error_array()
            ));
            $this->smartyci->display('register_email.tpl');
        } else {
            redirect('login');
        }

    }

Шаблон ( register_email.tpl ):

{extends "layout.tpl"}
 {block name=title}
     {$data.title}
 {/block}
 {block name=content}
        <div class="well well-sm text-center">
            <h3>Monitor Dosare</h3>
            <p class="intro">Bine ați venit la modulul nostru de urmărire a
                dosarelor aflate pe rolul instanțelor judectorești</p>
        </div>
        <div>
            {foreach $data.errors as $error}
                <p>{$erorr}</p>
            {/foreach}
        </div>
        <form class="col-xs-12 col-sm-10 col-md-8 col-lg-6
            register-form" name="register" action="register_email" method="post" novalidate>
            <legend class="text-center">Introduceți datele pentru înregistrare</legend>
            <div class="form-group">
                <label class="">Nume </label>
                <input class="form-control" type="text" name="nume" value=""/>
           </div>

            <div class="form-group">
                <label>Prenume </label>
                <input class="form-control" type="text" name="prenume" value=""/>

            </div>

            <div class="form-group">
                <label>E-mail </label>
                <input class="form-control" type="text" name="email" value=""/>
            </div>

            <div class="form-group">
                <label>Parola</label>
                <input class="form-control" type="password" name="parola"/>
            </div>

            <div class="form-group">
                <label>Confirmare Parola</label>
                <input class="form-control" type="password" name="confirm_parola" />
            </div>

            <div class="form-group g-recaptcha" data-sitekey="6Le3pmEUAAAAAGHc84q7hEhsR_iBmoFsbQhj5uCy"></div>
            <input type="submit" name="submit" class="btn btn-primary" value="Înregistrează-mă!" />

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