I need to use a Photo in several different places and cannot quite figure out what would be the best approach.
So basically, there is a gallery page on the website that shows a bunch of Photos. There is also a portfolio page, where each project has many Photos. There is a blog section too, and each blog has many Photos.
The common thing with these photos are that they have an image_url and a caption.
Project and Blog are Eloquent models and Photo model is a polymorphic model.
Project and Blog have:
public function photos()
{
return $this->morphMany('App\Photo', 'imageable');
}
And the Photo model has:
public function imageable()
{
return $this->morphTo();
}
This bit works fine. But my problem is that I want to attach this Photo model to the gallery as well. I'm thinking the two options I have, are:
- Create a
Gallerymodel, which will have just one entry, as the gallery is just one page. And the model would have the samephotos()method as above. - When loading up the gallery page, retrieve all the photos that have
imageable_idandimageable_typeset to null. (This would mean that the photos that do not belong to neitherProjectnorBlog).
But I think there's a different, better approach that I cannot see. Any suggestions?
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire