socialengine - Engine_Api::_()->getTable 返回的内容
问题描述
我想知道它是通过调用 getTable('tbl', 'module') 还是对象返回的数组。当我尝试将返回的值插入另一个数组然后将其编码为 JSON 时,我遇到了问题。将其本身传递以$this->_helper->json()
成功生成 JSON 输出,但将其用作另一个数组的一部分是行不通的,并且是一个空数组。控制器代码见下文:
//put your code here
public function indexAction () {
}
public function browseAction () {
$resultArray = $this->prepareArray();
$this->sendResponse($resultArray);
}
/**
* HTTP Response Codes
*/
const HTTP_OK = 200;
public function sendResponse($data) {
ob_clean();
$this->_helper->json($data);
}
public function prepareArray() {
//Here we will prepare the array to be later encoded as JSON
$responseArray = [
'status_code' => '',
'body' => [
'itemsCount' => '',
'foods' => [
'food_id' => '',
'food_title' => '',
'image' => '',
],
],
];
$foodTable = Engine_Api::_()->getDbTable('foods', 'restapi');
$foods = $foodTable->getFoods($this->view);
$foodArray = [];
print_r($foods);
while ($row = mysqli_fetch_row($foods)) {
$foodArray['food_id'] = $row['food_id'];
$foodArray['food_title'] = $row['title'];
$foodArray['image'] = $row['image'];
}
error_log( $row ['food_id'] . ',' . $row['title']);
$responseArray['status_code'] = '200';
$responseArray['body']['itemsCount'] = count($foods);
$responseArray['body']['foods']= $foodsArray;
return $responseArray;
}
解决方案
如果一切设置正确,则getTable('tbl', 'module')
返回object(Module_Model_DbTable_Tbl)
. 这是您的数据库表的模型。
您的特定错误在您分配foodsArray
未在任何地方定义的变量的行上。你应该在foodArray
这里分配。
$responseArray['body']['foods']= $foodsArray; // should be foodArray
推荐阅读
- scripting - 每项保单的最短日期
- html - 在编辑输入时隐藏角度验证消息
- angular - ERROR 错误:formArrayName 必须与父 formGroup 指令一起使用
- c# - Asp.Net httpGet 获取 httpstatus 415 用于调用具有复杂类型参数的控制器方法
- twitter-bootstrap - Bootstrap Modal 未在 IE11 中打开,但在 Chrome 和 Egde 中正确打开
- angular - 如何在材料 2 库中覆盖 mat-components 以获取角度?
- vue.js - 如何使用 vue.js v-select 通过 cypress.io 查找元素并选择?
- c# - https 绑定是否足以访问安全链接?
- c# - 在实体框架中插入数据
- reactjs - 如何使用 Hooks 切换带有 React 无线电组件的类?