猿问

CodeIgniter 4中错误验证时未定义的变量

我想检查一个表格并显示任何错误。我不明白 Code Igniter 4 如何让我检查$validation变量是否存在以显示警报。


当我用create()函数显示表单时,我收到一条错误消息,告诉我变量不存在,这是正常的。


我的问题如下,如何检查视图中是否存在错误以显示警报?


我的控制器


<?php namespace App\Controllers;


use CodeIgniter\Model\Site_model;


class Site extends BaseController

{

        public function __construct()

        {

                helper('html', 'url');

        }

        public function create()

        {

                helper(['form']);

                echo view('createSite');

        }


        public function store()

        {

                helper(['form']);

                $validation =  \Config\Services::validation();

                $validation->setRules([

                                'siteName' => 'required',

                                'password' => 'required',

                                'passwordConfirmation' => 'required|matches[password]'

                        ],

                        [   // Errors

                                'siteName' => [

                                        'required' => 'Merci de fournir un nom de site'

                                ],

                                'password' => [

                                        'required' => 'Merci de fournir un mot de passe'

                                ],

                                'passwordConfirmation' => [

                                        'required' => 'Merci de confirmer le mot de passe',

                                        'matches' => 'Les mots de passe ne correspondent pas.'

                                ]

                        ]

                );


我<?= $validation->listErrors(); ?>用来显示错误,但在第一次显示表单时,在验证它之前,没有错误,所以我得到 Undefined variable: validation


慕婉清6462132
浏览 89回答 2
2回答

HUH函数

试试这个代码:<?=&nbsp;\Config\Services::validation()->listErrors();&nbsp;?>在查看文件

梵蒂冈之花

我通过检查 $validation 变量是否已初始化解决了这个问题。CI 在显示错误之前没有检查错误数组是否为空(在我的情况下不存在),这仍然很奇怪。我视图中的代码:<?php if(isset($validation)) { ?><div class="alert alert-danger" role="alert">&nbsp; <?= $validation->listErrors(); ?><?php } ?>
随时随地看视频慕课网APP
我要回答