大家好,我是蛋糕php的新手,并且正在努力使用Cake PHP代码的JSON响应格式
public function getdata() {
$responce = array();
$conn = ConnectionManager::get('default');
$stmt = $conn->execute('select * from mst_categories a inner join mst_subcategories b on a.category_id=b.category_id');
$turnos = $stmt->fetchAll('assoc');
$responce['status'] = 1;
$responce['message'] = 'Category Data';
$responce['data'] = $turnos;
$this->set(compact('responce'));
$this->set('_serialize', ['responce']);
}
结果我得到了JSON响应
{
"responce": {
"status": 1,
"message": "Category Data",
"data": [
{
"category_id": "2",
"category_name": "testing",
"category_avtar": "C:\\xampp\\htdocs\\update\\webroot\\img\\cat_images\\5311-3.jpg",
"subcategory_id": "1",
"subcategory_name": "New Subcategory",
"subcategory_avtar": "C:\\xampp\\htdocs\\update\\webroot\\img\\subcat_images\\8580-2820-3.jpg"
},
{
"category_id": "2",
"category_name": "testing",
"category_avtar": "C:\\xampp\\htdocs\\update\\webroot\\img\\cat_images\\5311-3.jpg",
"subcategory_id": "2",
"subcategory_name": "Testing",
"subcategory_avtar": "C:\\xampp\\htdocs\\update\\webroot\\img\\subcat_images\\1232-5311-3.jpg"
}
]
}
}
虽然我想要按照描述的JSON输出
[
{
"categoryId": 11,
"categoryName": "cloths",
"subCategoryData": [
{
"subCategoryName": "jeans",
"subCategoryId": 0
},
{
"subCategoryName": "shirt",
"subCategoryId": 1
}
]
},
{
"categoryId": 12,
"categoryName": "electronics",
"subCategoryData": [
{
"subCategoryName": "TV",
"subCategoryId": 2
},
{
"subCategoryName": "fridge",
"subCategoryId": 3
}
]
}
]
我无法知道如何实现此类型的响应请在此查询中帮助我 在打电话的时候
$this->loadModel('MstCategories');
$data= $this->MstSubcategories->find()->contain(['MstCategories']);
$this->set(compact('data'));
$this->set('_serialize', ['data']);
我得到这样的回复
{
"data": [
{
"subcategory_id": 1,
"subcategory_name": "New Subcategory",
"subcategory_avtar": "C:\\xampp\\htdocs\\update\\webroot\\\\img\\subcat_images\\8580-2820-3.jpg",
"category_id": 2,
"mst_category": {
"category_id": 2,
"category_name": "testing",
"category_avtar":
"C:\\xampp\\htdocs\\niattaupdate\\webroot\\\\img\\cat_images\\5311-3.jpg"
}
},
{
"subcategory_id": 2,
"subcategory_name": "Testing",
"subcategory_avtar": "C:\\xampp\\htdocs\\niattaupdate\\webroot\\\\img\\subcat_images\\1232-5311-3.jpg",
"category_id": 2,
"mst_category": {
"category_id": 2,
"category_name": "testing",
"category_avtar": "C:\\xampp\\htdocs\\niattaupdate\\webroot\\\\img\\cat_images\\5311-3.jpg"
}
}
]
}
由于
答案 0 :(得分:1)
您不需要执行SQL命令。如果您已经烘焙模型,可以尝试下面的代码
public function getdata()
{
// if in controller other than MstCategoriesController
$this->loadModel('MstCategories');
$data = $this->MstCategories->find()
->contain([
'MstSubcategories'
]);
$this->set(compact('data'));
$this->set('_serialize', ['data']);
}