quick icon indicating copy to clipboard operation
quick copied to clipboard

relationship constraints don't propagate through HasManyThrough

Open davidAtInleague opened this issue 2 years ago • 1 comments

Constraints that are applied through a hasMany are not applied when that hasMany is used as part of a hasManyThrough.

Minimal repro as follows.

component /*Foo*/ extends="quick.models.BaseEntity" accessors=true {
	function a_() {
	        // we expect this to fail, when run, because someJunkColumn is not a valid column name in the db
		return hasMany( relationName = "a_", localKey = "x", foreignKey = "x" ).whereRaw("[someJunkColumn] = 999");
	}
	function a() {
		return hasManyThrough( [ "a_", "alike" ] )
	}
}

getInstance("Foo").with("a_").firstOrFail() // as expected, a database error: invalid column [someJunkColumn]
getInstance("Foo").with("a").firstOrFail() // no error, because additional constraints on a_ aren't applied

quick 6.2.0, quick 7.2.0

davidAtInleague avatar Dec 13 '23 22:12 davidAtInleague

hasManyThrough has changed a lot from Quick 8 on. Can you test if this is still a problem on Quick 8+?

elpete avatar May 31 '24 17:05 elpete