我正在尝试检查输入到存储在数据库中的用户名,但是尝试“ var_dump($ username);”时我从NULL输入中获得的值,我在做什么错了?
这是我的控制器类
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use App\Entity\Admin;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
class LoginController extends AbstractController
{
/**
* @Route("/admin", name="admin")
*/
public function connect_admin(Request $request)
{
$username= $request->query->get('username');
$repository = $this->getDoctrine()->getRepository(Admin::class);
$user = $repository->findOneBy(['user' => $username]);
var_dump($username);
if ($user) {
$message = "Success";
echo "<script type='text/javascript'>alert('$message');</script>";
return $this->render('site/admin.html.twig');
}
else{
$message = "Try again";
echo "<script type='text/javascript'>alert('$message');</script>";
}
}
}
表格:
<form class="login100-form validate-form flex-sb flex-w" method="GET" action="LoginController.php">
这就是按钮href中的内容
<a class="login100-form-btn" name="button_save" id="button_save" href="{{ path('admin') }}">
Login
</a>
尝试一下,
向表单添加ID:
<form class="login100-form validate-form flex-sb flex-w" id="myForm" method="GET" action="{{ path('admin') }}">
将登录链接更改为:
<a class="login100-form-btn" name="button_save" id="button_save" href="javascript:$('#myForm').submit();">Login</a>
现在,当您单击登录链接时,它应该将表单提交给connect_admin操作。现在,您可以使用
访问控制器中的提交值$request->query->get('field_name');
提交按钮应采用表格形式,最好使用post方法,并且动作应指向路线而不是控制器上,因此请尝试以下操作:
<form class="login100-form validate-form flex-sb flex-w" method="POST" action="{{path('admin')}}">
<input type="text" name="username" />
<input type="submit">
</form>
控制器
/**
* @Route("/admin", name="admin")
*/
public function connect_admin(Request $request)
{
// use request->get not query->get
$username= $request->request->get('username');
$repository = $this->getDoctrine()->getRepository(Admin::class);
// find one by username not by user
$user = $repository->findOneBy(['username' => $username]);
var_dump($username);
if ($user) {
$message = "Success";
echo "<script type='text/javascript'>alert('$message');</script>";
return $this->render('site/admin.html.twig');
}
else{
$message = "Try again";
echo "<script type='text/javascript'>alert('$message');</script>";
}