vendredi 17 février 2017

Laravel Polymorphic relationship getting different models

I have a Laravel model called "Area" which contains "Elements". Elements can be different Models (in this case a FreetextElement and a CheckboxElement). The whole thing is hooked up with a polymorphic pivot table, which contains the area_id, the element_id and the element_type. The basic relationship works fine. If I for example say:

$area->freetextElements 

Then I get all the freetextElements that are attached to that particular area. My issue is that I'd like a relationship function, which gets all the elements that are attached to the area, regardless of their model.

Here are the areas relations:

public function freetextElements()
{
    return $this->morphedByMany(ElementFreetext::class, 'element', 'coaching_element_area_element');
}

public function checkboxElements()
{
    return $this->morphedByMany(ElementCheckbox::class, 'element', 'coaching_element_area_element');
}

//find a better solution for this
public function elements()
{        
    return array_merge( $this->freetextElements->all(), $this->checkboxElements->all());
}

The last function "elements" is just to illustrate what I'm trying to achieve.

Any suggestions? Thanks in advance.

Best Regards



from Newest questions tagged laravel-5 - Stack Overflow http://ift.tt/2l0H4mu
via IFTTT

Aucun commentaire:

Enregistrer un commentaire