I haven't had much luck sorting this out the Laravel way. So I pose two questions.
Given that I have a Car and that Car can have many Features, but that Features are also separated by Feature Type, how can I return all Features, separated the Feature Type, for said Car?
I have four tables, with listings_features being the pivot table:
listings (id)
listings_features (listing_id, feature_id)
listings_features_types (id, type)
listings_features_values (id, listing_feature_type_id, value)
I have the following code, which produces what I need, but when I use it, I get a Laravel error ... "Call to a member function addEagerConstraints() on string" ... because I invoke it as such:
The code I am using to produce the data in the format I desire (not steadfast on) is
Which returns:
Here are the models (very basic, just starting out):
How can I create the Laravel model relationships to achieve the same result set but calling it as mentioned above? Alternatively, how can I call it as above but stop the error from occurring?
If you made it this far, thanks!
Update:
I wasn't able to get it working as is, I got a SQL error which makes me feel like I need a belongsToManyThrough so I can specify the table names:
But using the exact code posted as the answer below from @Carter Fort and changing the features() method to
Also adding to the model ListingFeatureValue
I get the output of:
That is better than I was at, but it would be nice if the results were grouped by type then features within then instead of it being each feature with a type attached. Makes it harder to parse for display. Thanks for the help thus far!