我尝试在控制器中执行此重定向:
$this->getSession()->setFlashdata("error_controller", "Incorrect email or password");
return redirect()->route("login");
这是在视图中:
<?php
if($error_controller){
echo "<div>" . $error_controller . "</div>";
}else{
echo "no-no";
}
?>
浏览器中打印的是no-no
,这意味着flashdata
中的error_controller
没有到达查看。
如何使用数据重定向到login
路由?
在控制器中添加此代码
session()->setFlashData("error_controller","Incorrect email or password");
return redirect()->to(base_url('/login'));
在视图文件中添加此代码
<?php
if(session()->has('error_controller'))
echo "<div>" . session()->getFlashdata('error_controller') . "</div>";
}else{
echo "no-no";
}
?>
我尝试了这种方法,它成功了:
控制器内:
$validate = $this->validate([
'firstname' => 'required',
'lastname' => 'required',
'email' => 'required|valid_email|is_unique[users.email]',
]);
然后我将错误作为视图中的数组(在控制器中(传递
$data['validation'] = $this->validator;
return view( 'view_file', $data );
然后查看文件:
<?= form_open(....) ?>
<input type="text" name="firstname" class="form-control" placeholder="Firstname">
<?= ( isset($validation) && $validation->hasError('firstname')) ? $validation->getError('firstname'): ''; ?>
<?= form_close() ?>