ログインフォームでCodeigniter 4フォーム検証を使用しました。また、検証フォームはうまく機能します。ログインページがロードされる前に、インポートされたフィールドにもエラーが表示されます。以下では、ログインのセクションに関連するコントローラーとビューのコードを挿入しました。さまざまな方法を確認しましたが、それを解決する方法がわかりませんでした。それを解決するために私を指導してください。
ユーザーコントローラー:
<?php namespace App\Controllers;
use App\Models\UserModel;
class User extends BaseController
{
public function index()
{
echo "User index";
// Load views
// echo view('static/header');
// echo view('front/all');
// echo view('static/footer');
}
public function login()
{
helper('form');
$val = $this->validate([
'username' => 'required',
'password' => 'required',
]);
if (!$val)
{
echo view('front/login', [
'validation' => $this->validator
]);
}
else
{
return redirect()->to('/');
}
}
public function logout()
{
}
public function register()
{
// Load views
echo view('front/register');
}
}
login.php (ログインページビュー):
<body>
<?= \Config\Services::validation()->listErrors(); ?>
<div class="limiter">
<div class="container-login100">
<div class="wrap-login100 p-b-160 p-t-50">
<?php echo form_open(base_url('user/login'),array('class'=>'login100-form validate-form')); ?>
<span class="login100-form-title p-b-43">
Login Form
</span>
<div class="wrap-input100 rs1 validate-input">
<input class="input100" type="text" name="username">
<span class="label-input100">User Name</span>
</div>
<div class="wrap-input100 rs2 validate-input">
<input class="input100" type="password" name="password">
<span class="label-input100">Password</span>
</div>
<div class="container-login100-form-btn">
<button class="login100-form-btn" type="submit">
Login
</button>
</div>
<div class="text-center w-full p-t-23">
<a href="#" class="txt1">
Forget Password?
</a>
</div>
<div class="text-center w-full p-t-23">
<a href="<?php echo base_url('user/register'); ?>" class="txt1">
SignUp
</a>
</div>
</form>
</div>
</div>
</div>
</body>
出力 (ログインページの初回アクセス): localhost/user/login