/**
* Hack to get polymorphic hasManyThrough
*
* $resourceClass = path to Eloquent model
* $resourceableName = the resource's polymorphic name "photoable"
* $relationship = the resource's middle relationship "photos"
*/
public function hasManyThroughable($resourceClass, $resourceableName, $relationship)
{
$resourceables = $this->$relationship->filter(function ($resourceable) use ($resourceableName, $resourceClass) {
$resourceable_type = $resourceableName . '_type';
return $resourceable->$resourceable_type == $resourceClass;
});
$resources = $resourceables->map(function ($resourceable) use ($resourceableName, $resourceClass) {
$resourceable_id = $resourceableName . '_id';
return $resourceClass::find($resourceable->$resourceable_id);
});
return $resources;
}