从HTML Form传递到Symfony的变量只显示第一个字符?

时间:2013-07-30 09:30:01

标签: symfony html-form

我的CakePHP应用程序上有一个HTML表单,它将一个通常超过30个字符的变量传递给我的新Symfony2应用程序。我可以毫无问题地将表单中的变量传递给Symfony。但是,当我回显传递给Symfony的变量时,变量似乎只包含30/40字符序列的第一个字符。

变量通常如下: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。发生了什么事?

2 个答案:

答案 0 :(得分:1)

你的错误来自你写下的事实:

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

$ passport已经将您的变量包含为字符串,但字符串只不过是一个伪字符数组。 然后,在您的代码之后,您要求$passport['value']并且php不会因为它在字符串上使用[]而烦恼,因为它认为您正在尝试从整个字符串中访问一个字符。 完成,也许是最棘手的部分,我可能在解释时错了。您正在尝试访问'value'键指向的值,实际上'value'键不存在但我认为强制转换是由php完成的,并且它被解析为值{{1 }}

答案 1 :(得分:0)

试试这个$ this-&gt; getRequest() - &gt; get(“TestForm”)['value']