fix: morphTo when relation name is in camel case #2318
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Commit e19e10a in this PR updates existing tests to use a 'multi-word' relation for the morph relationship. This means that:
imageable
is changed tohas_image
when passed as the$name
parameter tomorphOne()
andmorphMany()
Note that snake case is required here - the parent Eloquent
getMorphs()
method constructs the expected column names by appending '_id' and '_type' to the name that's passed.imageable
is changed tohasImage
when accessed as the relation nameThat commit causes
RelationsTest::testMorph()
to fail, then commit c02e584 fixes the issue in line with how Eloquent'smorphTo()
method works, where$name
variable defaults to the name of the calling function and is only snake-cased when passed togetMorphs()
(reference)