如何修复 ErrorException Undefined 属性 App\Controllers\User::$form_validation CI4

how to fix ErrorException Undefined property App\Controllers\User::$form_validation CI4

I got an error trying to function edit

to be honest I'm confused about placing the form validation library in codeigniter 4. can you guys help me?

user.php

 <?php
    
    namespace App\Controllers;
    
    class User extends BaseController
    {
    
        protected $db, $builder;
    
        public function __construct()
        {
         
            $this->db     = \Config\Database::connect();
            $this->builder = $this->db->table('users');
       }
    
        public function index()
        {
            $data['title'] = 'My Profile';
            return view('user/index', $data);
        }
    
        public function edit()
        {
    
            $data['title'] = 'Edit Profile';
            $db     = \Config\Database::connect();
            $query =   $this->builder->get();
            $data['user'] = $query->getRow();
    
            $this->form_validation->set_rules('name', 'Fullname', 'required|trim');
    
            if ($this->form_validation->run() == false); {
                $this->load->view('user/edit', $data);
            }
    
            return view('user/edit', $data);
        }
    }

@Nominxx,你用的是setRules()方法而不是setRule()。 setRules() 方法接受数组。

Read the official CI4 Docs

$this->form_validation->set_rules('name', 'Fullname', 'required|trim');

改为

$this->form_validation->setRule('name', 'Fullname', 'required|trim');

试试这个进行验证

$test = $this->validate(['name' => 'required|trim']);