在CodeIgniter上输入错误验证的重定向不起作用



我目前使用CodeIgniter 4.3.3版

我用CRUD建立博客网站。并创建张贴功能…

当我试图创建一个表单的目的是创建张贴(插入到数据库),它工作得很好…但是当尝试添加验证功能(创建错误消息)时,它不起作用…你能告诉我少了什么吗/有什么问题吗?

航线配置:

$routes->get('/', 'Pages::index');
$routes->get('/blogs', 'Blogs::index');
$routes->get('/blogs/create', 'Blogs::create');
$routes->post('/blogs/post', 'Blogs::post');
$routes->get('/blogs/(:segment)', 'Blogs::detail/$1');

控制器:

// method create (here is form)
public function create()
{
session();
$data = [
'title' => 'Post Blog',
'validation' => ConfigServices::validation()
];
return view('blogs/create', $data);
}
// method post for insert to db
public function post()
{
// validasi input
if (!$this->validate([
'judul' => 'required|is_unique[blogs.judul]',
'konten' => 'required',
])) {
$validation = ConfigServices::validation();
// this line is my problem, validation didnt works. (only redirect works)
return redirect()->to('blogs/create')->withInput()->with('validation', $validation);
}
$slug = url_title($this->request->getVar('judul'), '-', true);
$this->blogsModel->save([
'judul' => $this->request->getVar('judul'),
'konten' => $this->request->getVar('konten'),
'slug' => $slug,
'gambar' => 'post.png',
]);
session()->setFlashdata('post', 'Artikel berhasil diposting.');
return redirect()->to('blogs');
}

查看错误信息:

<?= $validation->listErrors(); ?>
<form action="<?= site_url('blogs/post') ?>" method="post">
<?= csrf_field(); ?>
...
<div class="invalid-feedback">
<?= $validation->getError('judul'); ?>
</div>

我想让我的表单输入验证工作。如果有其他方法可以使用,请告诉我……谢谢!

使用return redirect()->to('blogs/create')->withInput();返回验证结果

$validation->listErrors()$validation->showError('judul')一起显示

您使用的方法(getError($error))是用于后端数据处理。

来源:https://codeigniter4.github.io/userguide/libraries/validation.html?highlight=validation redirect-and-validation-errors

谢谢你的帮助…我已经解决了…在CodeIgniter 4.3.3不能使用

$validation = ConfigServices::validation();
$validation->listErrors();

改为:

validation_list_errors();
// or
validation_show('inputField');

但是你需要form helper来执行这个函数…所以使用它吧!

// controler method:
helper('form');
// view form
<?= form_open('action/link'); =>
...
<?= form_close(); =>

相关内容

  • 没有找到相关文章

最新更新