2013-07-30 40 views
0

我在我的CakePHP應用程序上有一個HTML表單,它將通常超過30個字符的變量傳遞給我的新Symfony2應用程序。我可以毫無問題地將表單中的變量傳遞給Symfony。但是,當我回顯傳遞給Symfony的變量時,該變量似乎只包含30/40字符序列的第一個字符。從HTML Form傳遞給Symfony的變量只顯示第一個字符?

變量通常是這樣的:T2psbWFGWjNXbTRob3p0VGEwVENheVZvTVRSRFRVUnFLMDVmYVhnaU5ucFJNVWgzZVZSUlRXOXI=

CakePHP執行中所使用的HTML形式是這樣的:

<form id="TestForm" method="POST" action="/web/app_dev.php/instructors/passport/" name="input"> 
<input type="text" value="UkVsS1JtMW1VRFZvT21raU1HVXJVQ3RaTVRSS2JVd3JWRjVxVEdnbVZEUkZiakZsV2pjemNVWTM=" name="value"> 
<input type="submit" value="Go to the New Database"> 
</form> 

的Symfony2的代碼是這樣的:

public function passportAction(Request $request) 
{ 
    $passport = $this->getRequest()->get("value"); 

    // Get variables from the search form 
    $value = $passport['value']; 

    $session = new Session(); 
    $session->start(); 

    $session->set('passport', $value); 
    $sessionval = $session->get('passport'); 

    print_r($sessionval); 

    return $this->render('DatabaseBundle:Default:test.html.twig', array(
     'pagename' => 'Database Does Not Exist', 
     'branchname' => 'Test Branch', 
     'group' => '0', 
     'something' => $sessionval 
    )); 
} 

有了這個代碼,並使用該變量,在Symfony2中,變量回顯時顯示的唯一內容是T。到底是怎麼回事?

+0

你能嘗試打印/呼應'$ passport'好嗎? 如果這個變量沒問題,我會解釋你爲什麼會得到這個「bug」 – MisterJ

+0

我已經使用了'print_r($ passport)'並且顯示了完整的變量。 – mickburkejnr

+0

好吧,正如我想的那樣,我給你寫回答 – MisterJ

回答

1

你的錯誤來自於一個事實,當你寫道:

$passport = $this->getRequest()->get("value"); 

$護照已經包含你作爲一個字符串變量,而是一個字符串,無非是字符的僞陣列更多。 然後,稍後在您的代碼中,您要求$passport['value'],並且php並不打擾您在字符串上使用[],因爲它認爲您嘗試訪問整個字符串中的一個字符。 要完成,也許最棘手的部分,我可能會解釋錯誤。您正在嘗試訪問'value'鍵指向的值,實際上'value'鍵不存在,但我認爲這是通過php在這裏完成的,並且它被解析爲值0

+0

謝謝你向我解釋。 – mickburkejnr

0

試試這個$這個 - > Request()方法 - >獲得( 「TESTFORM」)[ '值']

相關問題