- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想通过 session 进行登录和注销。但我收到错误。
"Attempted to call an undefined method named "getRequest" of class "AppBundle\Controller\DefaultController".
这是我的DefaultController.php
<?php
namespace AppBundle\Controller;
use AppBundle\Entity\users;
use AppBundle\Entity\Login;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Session\Session;
class DefaultController extends Controller
{
/**
* @Route("/login", name="login")
*/
public function loginAction(Request $request)
{
$session=$this->getRequest()->getSession();
$em=$this->getDoctrine()->getEntityManager();
$repository=$em->getRepository('AppBundle:users');
if($request->getMethod()=='POST')
{
$session->clear();
$username=$request->get('username');
$password=$request->get('password');
$remember=$request->get('remember');
$user=$repository->findOneBy(array('userName'=>$username, 'password'=>$password));
if($user)
{
if($remember=='remember-me')
{
$login=new Login();
$login->setUserName($username);
$login->setPassword($password);
$session->set('login', $login);
}
return $this->render('default/welcome.html.twig', array('name' =>$user->getFirstName()));
}
else
{
return $this->render('default/login.html.twig', array('name' => 'Login Error'));
}
}
else{
if($session->has('login'))
{
$login=$session->get('login');
$username=$login->getUserName();
$password=$login->getPassword();
$user=$repository->findOneBy(array('userName'=>$username, 'password'=>$password));
if($user)
{
return $this->render('default/welcome.html.twig', array('name' =>$user->getFirstName()));
}
}
return $this->render('default/login.html.twig');
}
}
/**
* @Route("/signupe", name="signupe")
*/
public function signupeAction(Request $request)
{
if($request->getMethod()=='POST'){
$username=$request->get('username');
$firstname=$request->get('firstname');
$password=$request->get('password');
$user = new Users();
$user->setFirstName($firstname);
$user->setPassword($password);
$user->setUserName($username);
$em=$this->getDoctrine()->getEntityManager();
$em->persist($user);
$em->flush();
}
return $this->render('default/signupe.html.twig');
}
/**
* @Route("/logout", name="logout")
*/
public function logoutAction(Request $request)
{
$session=$this->getRequest()->getSession();
$session->clear();
return $this->render('default/login.html.twig');
}
}
login.html.twig
<html>
<head>
{% block stylesheets %}
<link rel="stylesheet" href="{{ asset('templates/css/1.css') }}">
<link rel="stylesheet" href="{{ asset('templates/css/parsley.css') }}">
{% endblock %}
{% block javascripts %}
<script src="{{ asset('templates/js/parsley.min.js') }}"></script>
<script src="{{ asset('templates/js/parsley.extend.min.js') }}"></script>
<script src="{{ asset('templates/js/parsley-standalone.min.js') }}"></script>
{% endblock %}
</head>
<body>
{% block container %}
<div class="wrapper">
<h2>Login User</h2>
<form class="form-sigin" method="POST" action="{{path('login')}}" data-validate="parsley">
<div><input type="text" name="username" class="txtbox" placeholder="Email Address" data-trigger="change" data-required="true" data-type="email"></div>
<div><input type="password" name="password" class="txtbox" placeholder="Password" data-trigger="change" data-required="true"></div>
<div>
<label class="checkbox">
<input type="checkbox" value="remember-me"><span>Remember Me</span></div>
<div><input type="submit" value="Log In" class="loginBtn"></div>
<div><span><a href="">Forgot Password</a></span></div>
</form>
</div>
{% if name is defined %}
<div class="alert-info fade in">
<strong>How are you</strong>
</div>
{% endif %}
{% endblock %}
</body>
</html>
signupe.html.twig
{% block stylesheet %}
<link rel="stylesheet" href="{{ asset('templates/css/1.css') }}">
<link rel="stylesheet" href="{{ asset('templates/css/parsley.css') }}">
<style>
form {
border: 0px solid #f1f1f1;
}
input[type=text]{
/* width: 100%; */
padding: 12px 20px;
margin: 8px 0;
display: inline-block;
border: 1px solid #ccc;
box-sizing: border-box;
}
input[type=password] {
/* width: 100%; */
padding: 12px 20px;
margin: 8px 0;
display: inline-block;
border: 1px solid #ccc;
box-sizing: border-box;
}
button {
background-color: #4CAF50;
color: white;
padding: 11px 22px;
margin: 8px 0;
border: none;
cursor: pointer;
text-align:center;
/* width: 100%; */
}
.Btn {
margin-left: 50px;
}
button:hover {
opacity: 0.8;
}
.cancelbtn {
width: auto;
padding: 11px 18px;
background-color: #f44336;
}
.imgcontainer {
text-align: center;
margin: 24px 0 12px 0;
}
img.avatar {
width: 40%;
border-radius: 50%;
}
.container {
padding: 16px;
text-align:center;
}
span.psw {
float: center;
padding-top: 16px;
}
/* Change styles for span and cancel button on extra small screens */
@media screen and (max-width: 300px) {
span.psw {
display: block;
float: none;
}
.cancelbtn {
width: 100%;
}
}
</style>
{% endblock %}
{% block javascripts %}
<script src="{{ asset('templates/js/parsley.min.js') }}"></script>
<script src="{{ asset('templates/js/parsley.extend.min.js') }}"></script>
<script src="{{ asset('templates/js/parsley-standalone.min.js') }}"></script>
{% endblock %}
{% block container %}
<h2 align="center">Sign Up</h2>
<form method="POST" action="{{path('signupe') }}" data-validate="parsley">
<div class="container">
<label><b>User Name</b></label>
<input type="text" id="username" placeholder="Enter User Name" name="username" placeholder="Email Address" data-trigger="change" data-required="true" data-type="email">
<br>
<label><b>Repeat User Name</b></label>
<input type="text" id="usernameRe" placeholder="Enter User Name" name="usernameRe" placeholder="Email Address" data-trigger="change" data-required="true" data-type="email" data-equalto="#username">
<br>
<label><b>First Name</b></label>
<input type="text" placeholder="Enter First Name" name="firstname" placeholder="Email Address" data-trigger="change" data-required="true">
<br>
<label><b>Password</b></label>
<input type="password" placeholder="Enter Password" name="password" placeholder="Email Address" data-trigger="change" data-required="true"><br>
<div class="Btn">
<button type="submit">Create Account</button>
</div>
</form>
</div>
{% endblock %}
welcome.html.twig
{%block container %}
<div class="container">
<h2>Hello {{name}}</h2>
</div>
<a href="{{path('logout')}}">Logout</a>
{%endblock%}
[1]: /image/40KxK.jpg
最佳答案
Symfony Controller 中的
getRequest()
方法自 2.4 版以来已被弃用,并在 3.0 中被删除。您已经注入(inject)了 $request
对象,因此只需使用 $request->getSession()
。
关于javascript - 试图调用类 "getRequest"的名为 "AppBundle\Controller\DefaultController"的未定义方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45934989/
我的代码: @RunWith(Parameterized.class)
我正在创建一个 magento 自定义管理模块和一个表单。我想更新此表格但不更新。在 Controller 中,在 SaveAction() 下我打印 $this->getRequest()->get
我们正在 Symfony2 上开发两个独立的站点,并且在处理提交的表单时遇到了一个奇怪的问题。 两个站点都有一个用于显示表单和处理提交的操作。因为它同时处理 GET 和 POST 请求,$this->
我正在尝试进行第一个中继查询。我执行了 npm run relay 和 npm run build。一切正常,但在控制台中出现错误: 有谁知道可能导致此错误的原因吗? 更新。 Table.js (co
我见过两种在 Controller 中获取 Request 对象的方法: $request = Request::createFromGlobals(); $request = $this->getR
我将从 ServletActionContext 中删除一些属性,但稍后当我迭代 ServletActionContext 时,属性会继续显示。 ServletActionContext.getReq
在我的代码中,我想在 SugarCRM REST API V10 上启动 GET 请求,对于过滤器,我必须向请求添加一些参数 应该是什么: https://domain/rest/v10/Accoun
我见过两种在 Controller 中获取 Request 对象的方法: $request = Request::createFromGlobals(); $request = $this->getR
作为 this 的延续问题,我在使用 dotnetopenauth 时遇到了问题。 我导航到我的信赖方代码并创建请求,但是当我的提供者收到请求时 OpenIdProvider.GetRequest()
这个问题已经有答案了: How can I access and process nested objects, arrays, or JSON? (31 个回答) 已关闭 9 年前。 嗨,我有一个以
下面是我用来测试的代码: 我们正在做的是使用 getPageContext().getRequest().getParameterMap(
最近我浏览了 symfony2 api 文档,这是我在 Request 的文档中找到的 get方法: Avoid using this method in controllers: slow pref
我想为Graphql创建RolesGuard 我创建如下的角色装饰器 export const Roles = (...roles: string[]) => SetMetadata('roles',
我正在努力从 url 检索制造商属性 localhost/magento/index.php/test-pro.html?manufacturer/4 所以我使用了$this->getRequest(
我正在尝试使用 ReactiveElasticsearchClient 连接到我的 Elasticsearch 。 根据文档 https://www.elastic.co/guide/en/elast
我正在处理最后一个开发人员创建了一个表单但没有使用“$form”的现有代码,代码是: public function indexAction() { ....... $objRequ
当尝试在 XPage ( as explained here ) 上获取 SSJS 中的 Session 时,前面的类型只会达到 getSession()。 我可以看到 getSession() 调用
在 Controller Action 中,我们可以通过两种方式获取请求对象: $request = $this->getRequest(); 或者将其作为参数传递给 Action public fu
我正在将 Authorization: Bearer { Token } 作为 HTTP 请求传递给我的 Symfony Rest Controller 。 我的要求: GET /app_dev.ph
我有一个问题。使用 GetRequest 我想要一个 SQL 查询,其中查询 2 个参数。Sql 查询是 从模板中选择*,其中 user_name=user_name AND template_id=
我是一名优秀的程序员,十分优秀!