Level 4
I imagine you have already solved this, but just in case anyone else finds this, I would recommend [a] using a Transformer, or [b] using an Eloquent Mutator in your Model (which may cause problems with queries).
A. Transformer (using Fractal)
<?php
namespace app\src\App\Transformer;
use app\SomeTable;
use League\Fractal\TransformerAbstract;
class SomeTableTransformer extends TransformerAbstract {
protected $defaultIncludes = ['someThing'];
protected $availableIncludes = [];
public function transform(SomeTable $object){
return [
'uuid' => bin2hex($object->id),
'name' => $object->some_name,
'updated_at' => $object->updated_at->toDateTimeString()
];
}
public function includeSomeThing(SomeTable $someTable){
return $this->item($someTable->something, new SomethingTransformer()); //The SomethingTransformer would be a Transformer to transform that data accordingly
}
}
B. Eloquent Mutator
class SomeTable extends Model
{
protected $table = "some_table";
protected $primaryKey = "uuid";
public $incrementing = false;
public function getUuidAttribute($value)
{
return bin2hex($value);
}
}
1 like