Olá, na aula "Navegando entre recursos" do curso "Lumen: API Rest" o instrutor mostrou como adicionar um novo item no resultado que já estavamos recebendo da consulta no banco de dados:
No meu caso, que é um pouco diferente do instrutor, eu preciso popular o meu item novo com dados de uma nova consulta do banco de dados;
LicensesController.php
<?php
namespace App\Http\Controllers;
use App\Models\License;
class LicencesController
{
public function showLicense()
{
return License::query()
->join('plans', 'licenses.plan_id', '=', 'plans.id')
->where('licenses.client_id', 1)
->get(['plans.id', 'plan_name', 'storage', 'price','expires_at']);
}
}
Licenses.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class License extends Model
{
public $timestamps = false;
protected $appends = ['licenses'];
public function getLicensesAttribute($licenses): array
{
return [
'total_licenses' => RESULTADO_INTEGER_DA_CONSULTA_NO_BANCO_AQUI,
'licenses_available' => '123'
];
}
}
Meus código para consultar está aqui:
public function totalLicenses()
{
$totalLicenses = License::query()
->where('client_id', 1)
->get('licenses_quantity');
return $totalLicenses;
}
Porém ele me retorna uma collection, e não um inteiro, o que eu preciso é de uma forma de pegar somente o valor do campo 'licenses_quantity' como integer e saber como que eu passo ele na minha função getLicensesAttribute($licenses).