我的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
。发生了什么事?
答案 0 :(得分:1)
你的错误来自你写下的事实:
$passport = $this->getRequest()->get("value");
$ passport已经将您的变量包含为字符串,但字符串只不过是一个伪字符数组。
然后,在您的代码之后,您要求$passport['value']
并且php不会因为它在字符串上使用[]
而烦恼,因为它认为您正在尝试从整个字符串中访问一个字符。
完成,也许是最棘手的部分,我可能在解释时错了。您正在尝试访问'value'
键指向的值,实际上'value
'键不存在但我认为强制转换是由php完成的,并且它被解析为值{{1 }}
答案 1 :(得分:0)
试试这个$ this-&gt; getRequest() - &gt; get(“TestForm”)['value']