Join interfering with eager loading

jerauf posted 3 years ago

I'm going insane.

I have a query that needs to use a join and eager loading. The join needs to occur because I need to use a field in the joined table in my where clause.

Here is my code:

						  $staging_query = CreditRole::join('roles', '', '=', 'credits_roles.role_id')
									->with(array('has_credit' => function($staging_name_query)
					  								->where('run_type', '=', 'OR')
					  								->orderBy('sort_no', 'asc')
									->where('roles.role_category', '=', 'ST')
									->get(array('*', ' as credit_id'));

Here is my model:

class CreditRole extends \Eloquent {

  protected $table = 'credits_roles';

  public function has_credit()
	return $this->hasMany('\App\Models\CreditName', 'credit_role_id', 'id');


The problem is that using this, it finds the roles correctly but doesn't display results from has_credit. If I eager load the role, it works as intended and displays has_credit. However, I need to query on roles.role_category.

Can anyone help?

jerauf replied 3 years ago

Anyone have any ideas? Would be much appreciated. My project has stalled because of this.

giovannipds replied 6 months ago

Did you solved it? I've solved it using fromRaw & whereRaw, I couldn't get it working by using the normal workflow join + with...

Sign in to participate in this thread!

We'd like to thank these amazing companies for supporting us