Мне нужна помощь с передачей ошибок валидации шаблону 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}