3
に外部キーに基づいて2つのテーブルのJSONエンコードデータを取得します。私はあなたのための質問を持っていると私はこの解決策を見つけていない、だから私は2つのテーブル持ってCodeIgniterの
カテゴリー:
id category
1 BBA
2 BSCS
3 BEE
を
sub_category:
id category_id sub_category_name
1 1 Accountant
2 1 Manager
3 1 Sales
4 2 Data Adminsitrator
5 2 Web Developer
6 3 Airline Pilot
7 3 Airport Security Screener
8 3 Aircraft Mechanic
私は、カテゴリを取得したいとカテゴリの下に、私はすべてのsub_category
をしたい最初のテーブルから2つのテーブルに参加したいですこのように私のコントローラの外観:
public function getVehicles()
{
$result = $this->crud_m->getUserVehicles($data,'vehicle');
return $this->output->set_output(json_encode(array(
'status' => 'OK',
'statusCode' => '402',
'response' => array(
'description' => 'Details',
'category'=> $result
)
)));
}
そして、私のモデルは、このようないくつかのものです:
public function getUserVehicles($data)
{
$this->db->select('*');
$this->db->from('categories');
$this->db->join('sub_category','sub_category.category_id=categories.id');
$this->db->group_by('categories.id');
$query = $this->db->get();
$result = $query->result();
if(empty($result)){
return '401';
}
else{
return $result;
}
}
私の出力は次のようになりました:
{
"status": "OK",
"statusCode": "402",
"response": {
"description": "Details",
"category": [
{
"id": "1",
"category": "BBA",
"category_id": "1",
"sub_category_name": "Accountant"
},
{
"id": "4",
"category": "BSCS",
"category_id": "2",
"sub_category_name": "Data Adminsitrator"
},
{
"id": "6",
"category": "BEE",
"category_id": "3",
"sub_category_name": "Airline Pilot"
}
]
}
}
そして、何私は必要これは次のようなものです:
[
{
"categoryId": "1",
"category": "BBA",
"subCategory": [
{
"subCategoryId": "1",
"subCategoryName": "Accountant"
},
{
"subCategoryId": "2",
"subCategoryName": "Manager"
},
{
"subCategoryId": "3",
"subCategoryName": "Sales"
}
]
},
{
"categoryId": "2",
"category": "BSCS",
"subCategory": [
{
"subCategoryId": "4",
"subCategoryName": "Data Adminsitrator"
},
{
"subCategoryId": "5",
"subCategoryName": "Web developer"
}
]
}
]
カテゴリのレコードセットからforループを作成し、それをリターン配列に追加する必要があります。 –
'$ this-> db-> group_by( 'categories.id');を削除すると、すべての行が表示されます。結果をループし、要件に応じて別の配列を作成します –