I currently have 3 classes Elements
, PageElements
and Page
. The Models are below:
Pages.php
class Pages extends Model
{
public function pageElement() {
return $this->hasMany(PageElements::class, 'page_id');
}
}
PageElements.php
class PageElements extends Model
{
public function element() {
return $this->hasOne(Elements::class, 'id', 'element_id');
}
}
Elements.php
class Elements extends Model
{
//
}
All the data I need is from Elements
, I can throw the PageElements
data away, how can I convert this to use a hasManyThrough
relationship?
I would like to directly access the Elements
via $page->elements
, currently I have to do $page->elements->element
.
Am I right in thinking this should be a hasManyThrough
relationship?
My current attempt is below
public function elements() {
return $this->hasManyThrough(Elements::class, PageElements::class, 'element_id', 'id', 'id', 'page_id');
}
Though is always returns an empty dataset