我正尝试使用重定向将验证错误发送到另一个方法
public function save()
{
//validasi input
if (!$this->validate([
'judul' => 'required|is_unique[komik.judul]'
])) {
return redirect()->to('/komik/create')->withInput();
}
这是create()方法
public function create()
{
session();
$data = [
'title' => 'Form Tambah Data Komik',
'validation' => \Config\Services::validation()
];
return view('komik/create', $data);
}
这是我的create.php
视图表单的一个片段,我试图在其中验证
<form action="/komik/save" method="post" enctype="multipart/form-data">
<?php d($validation) ?>
<?= $validation->listErrors();; ?>
其形式为
问题是save()
中的验证错误没有发送到create()
方法,但是验证错误存在于save()
方法中,我可以通过在save()
中添加$validation = \Config\Services::validation(); dd($validation);
来证明,这是在添加代码
后单击“Tambah Data”按钮时发生的情况
正如您所看到的,存在验证错误,只是没有将其发送到create()
方法
我试着使用return view()
,这可以工作,但它产生了另一个问题。我想使用return redirect()
代替。
这是我的路线
$routes->get('/', 'Pages::index');
$routes->get('/komik/create', 'Komik::create');
$routes->get('/komik/edit/(:segment)', 'Komik::edit/$1');
$routes->post('/komik/save', 'Komik::save');
$routes->delete('/komik/(:num)', 'Komik::delete/$1');
$routes->get('/komik/(:any)', 'Komik::detail/$1');
我能做些什么来解决这个问题?谢谢
1条答案
按热度按时间dkqlctbz1#
A.使用Flashdata代替。
CodeIgniter支持“flashdata”,即只对下一个请求可用的会话数据,然后自动清除。
即:
save()
方法。with()
将密钥和消息作为 Flashdata 添加到会话。
public with(string $key, array<string|int, mixed>|string $message) : $this
B.然后,修改
create()
方法,将闪存数据传递到View。create()
方法。C.最后,在您的View文件(
create.php
)中,您可以正常访问传递的数据。create.php
查看文件。