accept same type on Encoder::instance
jebie opened this issue · comments
jebie commented
The main reason is that ModelResource
is widely used in all my models. And this is how I structured
class ModelResource extends \stdClass
{
public static function instance(ShimModel $Model, $data)
{
$modelResource = new self();
$columns = array_keys($Model->schema());
foreach ($columns as $column) {
$modelResource->{Inflector::variable($column)} = $data[$column];
}
return $modelResource;
}
}
What happened here is that when I added the same ModelResource
more than once, only the last ModelResource
Schema was evaluated.
$encoder = Encoder::instance([
ModelResource::class => Schema1::class,
ModelResource::class => Schema2::class,
ModelResource::class => Schema3::class,
]);