小编bha*_*ari的帖子

如何访问控制器中的会话变量

我在一个控制器中创建了一个会话变量,我想在另一个控制器中访问它.在loginsuccess控制器中我设置会话:

$session->set('id',$id);
Run Code Online (Sandbox Code Playgroud)

如何在另一个控制器中访问此变量?

session symfony

14
推荐指数
3
解决办法
4万
查看次数

如何在symfony2中的视图中获取会话变量

感谢您宝贵的建议

我创建了一个登录系统,我想在会话变量中存储用户的id

这是我的登录系统控制器

use Symfony\Component\HttpFoundation\Session\Session;

class successController extends Controller
{

public function successAction(Request $request)
    {

       --some code for form--
       $repository = $em->getRepository('RepairStoreBundle:users');
        $query = $repository->auth($name,$password);
      $error="sorry invalid username or password";   
           if($query== false)
            {
                return $this->render('RepairLoginBundle:login:login.html.php', array(
            'form' => $form->createView(),'error'=>$error,)); 
                }
        else
        {
            $role=$query[0]['role'];
            $id=$query[0]['id'];
            if($role == 1)
            {
                $session = new Session();
                $session->start();
                $session->set('id',$id);
                $result=$repository->display();
            return $this->render('RepairLoginBundle:login:success.html.php',array('result'=>$result,));
            }
            else
            {
             $session = new Session();
             $session->start();
             $session->set('id',$id);
            $res= $repository->edit($id);
        return $this->render('RepairLoginBundle:login:user.html.php',array('res'=>$res));

            }    
        }

    }

}
Run Code Online (Sandbox Code Playgroud)

当admin使用role = 1登录时,它将呈现给success.html.php

在这个视图中,我如何获得我在控制器中设置的会话变量.我用过$ session-> get('id'); …

symfony

3
推荐指数
1
解决办法
1万
查看次数

将app.php重命名为index.php,使所有路由在symfony2中不起作用

我已将app.php重命名为index.php,其中routing.yml包含以下路由索引:

pattern:   /
defaults:  { _controller:RepairLoginBundle:home:home}
Run Code Online (Sandbox Code Playgroud)

登录:

pattern:   /login
defaults:  { _controller:RepairLoginBundle:Login:login}
Run Code Online (Sandbox Code Playgroud)

当我使用/

它正在显示我的项目主页,但是当我点击登录或注册buuton时,它会生成url/login并显示

在此服务器上找不到请求的URL/rpair/login /.

我想在用户点击/后立即在symfony2中创建默认索引页面.

这是我的vhost设置

NameVirtualHost 10.70.10.56

ServerName repair.com

DocumentRoot "/var/www/repair"
<Directory "/var/www/repair">
   DirectoryIndex app.php
    AllowOverride All
    Order allow,deny
    Allow from all
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app.php [QSA,L]
    RedirectMatch permanent ^/app\.php/(.*) /$1
</Directory>
Run Code Online (Sandbox Code Playgroud)

.htaccess:Options + FollowSymlinks RewriteEngine On

# Explicitly disable rewriting for front controllers
RewriteRule ^app_dev.php - [L]
RewriteRule ^app.php - [L]

RewriteCond %{REQUEST_FILENAME} !-f

# Change below before deploying to production
#RewriteRule …
Run Code Online (Sandbox Code Playgroud)

symfony symfony-2.1

3
推荐指数
1
解决办法
3669
查看次数

标签 统计

symfony ×3

session ×1

symfony-2.1 ×1