我在一个控制器中创建了一个会话变量,我想在另一个控制器中访问它.在loginsuccess控制器中我设置会话:
$session->set('id',$id);
Run Code Online (Sandbox Code Playgroud)
如何在另一个控制器中访问此变量?
感谢您宝贵的建议
我创建了一个登录系统,我想在会话变量中存储用户的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'); …
我已将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)