2015-07-28 81 views
-1

我稱第一次這條路線,其中我把會話0:執行一個PHP方法一次

public function userCaptcha(){ 
    $_SESSION['isFacebookRegistration'] = 0; 
} 

之後我打電話這是由服務器執行的2倍的另一方法:

public function index() 
{ 
    $this->session = $_SESSION['isFacebookRegistration']; 
    error_log(print_r($_SESSION['isFacebookRegistration'],true), 3, "/tmp/error.log"); 
    $_SESSION['isFacebookRegistration'] = 3; 
    return $this->render('template/index.twig'); 
} 

該觀點是:

{{ dump(session) }} 

在控制檯$_SESSION['isFacebookRegistration'],我得到:0 3,在視圖外核層y 3。所以問題是,可以發送視圖值0,之後修改3中的值$_SESSION['isFacebookRegistration']?我重複說index()方法是由服務器調用2次。

回答

1

你需要這個?如果我理解正確的話,怎麼把我的英語不是很好

private $flag = false; 

public function index() 
{ 
    $this->session = $_SESSION['isFacebookRegistration']; 
    error_log(print_r($_SESSION['isFacebookRegistration'],true), 3, "/tmp/error.log"); 

    if ($this->flag) { 
     $_SESSION['isFacebookRegistration'] = 3; 
    } else { 
     $this->flag = true; 
    } 

    return $this->render('template/index.twig'); 
} 

你也可以傳遞一個額外的參數(我認爲這將是更好):

public function index($changeSessionValue = false) 
{ 
    $this->session = $_SESSION['isFacebookRegistration']; 
    error_log(print_r($_SESSION['isFacebookRegistration'],true), 3, "/tmp/error.log"); 

    if ($changeSessionValue) { 
     $_SESSION['isFacebookRegistration'] = 3; 
    } 

    return $this->render('template/index.twig'); 
} 
+0

不行的,所以當我存取權限路線主頁,方法index()被調用2次。現在我想如果我訪問第一次主頁(方法索引()被稱爲2次,並且會話中的值需要爲0)。如果我第二次訪問路由主頁(方法index()被執行2次,並且該值需要爲3) – TanGio

+0

在你的情況下,我只得到'0 0' – TanGio

+0

'<?php \t session_start(); \t class Test { \t \t private $ isSecondCall = false; \t \t公共功能指數() \t \t \t { \t \t如果($這個 - > isSecondCall){ \t \t $ _SESSION [ 'isFacebookRegistration'] = 3; \t \t} else { \t \t \t $ this-> isSecondCall = true; \t \t} \t \t var_dump($ _ SESSION ['isFacebookRegistration']); \t \t} \t} \t $ a = new Test; \t $ a-> index(); \t $ a-> index();' 適合我 – deniskoronets