Reputation: 33
[{
"productname" : "product 1",
"label" :["used license", "unused license"],
"value" : [16,15]
},
{
"productname" : "product 2",
"label" :["used license", "unused license"],
"value" : [16,15]
}]
I am trying to create the above format from laravel code.But there were no success so far. In the above code label is the names of two columns and value are the values of two columns.
My code so far is below
$licenses_count = products::select('product_name AS
productname','total_license', 'license_remaining')
->get();
return $licenses_count;
my code output
[{
"productname" : "product 1",
"total_licenses" :5,
"remaining_licenses" : 11,
},
{
"productname" : "product 2",
"total_licenses" :16,
"remaining_licenses" : 15,
}]
Any help would be appreciated.
Upvotes: 0
Views: 117
Reputation: 33
I changed the code as below which is working as in the required format.
$result = array();
foreach($licenses_count as $row){
foreach($row as $k=>$v){
$product = array();
if($v=="productname"){
$product['productname'] = $row->productname;
}
if($v=="total_license"){
//return $row;
$product['label'][] = 'used license';
$product['value'][] = $row->total_license;
}
if($v=="license_remaining"){
$product['label'][] = 'unused license';
$product['value'][] = $row->license_remaining;
}
}
$result[] = $product;
}
return $result;
Upvotes: 1
Reputation: 549
Try this:
$licenses_count = products::select('product_name AS
productname','total_license', 'license_remaining')
->get();
$result = array();
foreach($licenses_count as $row){
$product = array();
foreach($row as $k => $v){
if($k=="productname"){
$product['productname'] = $v;
}
if($k=="total_licenses"){
$product['label'][] = 'used license';
$product['value'][] = $v;
}
if($k=="remaining_licenses"){
$product['label'][] = 'unused license';
$product['value'][] = $v;
}
}
$result[] = $product;
}
return $result;
Upvotes: 0