我的代码中的奥秘
A Mystery in my Code
我已经修复了typo3上的ajax问题。现在又来了一个问题。这个时间与将操作中找到的对象返回到 Javascript 有关。所以我告诉你我到底做了什么。
这是第一个我的 Ajax 调用函数:
function getContent(id)
{
console.log("Starting process ...");
$.ajax({
async: 'true',
url: 'index.php',
type: 'POST',
data: {
eID: "ajaxDispatcher",
request: {
pluginName: 'listapp',
controller: 'Pays',
action: 'getMyCompanys',
arguments: {
'id': id
}
}
},
dataType: "json",
success: function(result) {
var data = JSON.parse(result)
console.log(data.nom);
},
error: function(error) {
console.log(error);
}
});
}
这是"getMyCompanys"操作:
public function getMyCompanysAction()
{
$argument = $this->request->getArguments('id');
$company = $this->entrepriseRepository->findBypays(2); // just to test with the id 2
$result = (array) $company;
return json_encode($result);
}
现在在控制台上,我得到以下输出:
{"'u0000*'u0000dataMapper":{},"'u0000*'u0000persistenceManager":{},"'u0000*'u0000query":{},"'u0000*'u0000queryResult":null}
所以乍一看,我以为对象没有传递给javascript,但是当我尝试向对象添加一个属性时$company($company->att = 'val';)
我得到这个输出:
{"'u0000*'u0000dataMapper":{},"'u0000*'u0000persistenceManager":{},"'u0000*'u0000query":{},"'u0000*'u0000queryResult":null**,"att":"val"}**
请注意,显示添加的属性及其值
所以我现在确信这个对象有问题。我也 100% 确定该方法找到Bypays(2);正在工作,我在列表中尝试了它。
我真的不知道可能是什么问题:/
仅供您参考:这是我使用 JBuilder 自己开发的 typo3 扩展的一部分
经过长时间的挣扎,我尝试了一个技巧,它奏效了,它证明了我json_encode不会返回 typo3 中的对象,即使我应用了:
$object->toArray() or (array) $object
到对象,所以我的解决方案是:
$companies = array();
foreach ($this->adresseRepository->findByland($id) as $company)
{
$companies[] = array(
'uid' => $company->getUid(),
'firma' => $company->getFirma(),
'strasse' => $company->getStrasse(),
'plz' => $company->getPlz(),
'ort' => $company->getOrt(),
'land' => $company->getLand(),
'telefon' => $company->getTelefon(),
'email' => $company->getEmail(),
'webseite' => $company->getWebseite()
);
}
return json_encode($companies);
它奏效;)
相关文章:
- 从桌面读取python文件时高亮显示代码
- 如何将函数包装在函数中以避免代码重复
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 货币代码为欧元-金额的格式不应包含小数
- Regex代码只允许一个空格
- 如何将屏幕分辨率乘以 80%,然后在代码中使用
- 从var向代码隐藏函数传递值
- 如何动态插入jquery代码
- 如何在php变量中嵌入JQuery代码
- 代码不会验证
- 如何从rails中的代码中删除新行( )
- Angularjs代码未在匿名函数中运行
- 如何做到这一点,使代码在不传递条件后执行函数
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 面向对象的Javascript代码在IE7中不起作用
- 将 jQuery 代码添加到 Index.aspx 页面
- 为什么忽略了eval()代码中的语法错误
- 元素在我的代码中不会.fadeTo.Don'I don’我不知道;s错误的JavaScript、JQuery、H
- 如何轻松地将服务器端变量从Java代码转移到客户端代码
- 我的代码中的奥秘