Skip to content

Custom "with()" method that has two joins, how to? #220

Description

@paulcanning

I am struggling to write a custom "with()" method that involves two joins.

I'll try to breakdown my tables:

Users - generic table, users can be joined to other tables via lookup tables.
Resellers - entity that describes a reseller, has an owner_id which is a foreign key to users.id
Agents - lookup table to connect a (different) user to a reseller, as an agent (sales person). Can be multiple per reseller.

So, typically, looking up a reseller, I can get the owner (users) details by using the $belongs_to relationship and using "with('users')" in my call, before get_all() eg $this->resellers->with('users')->get_all()

This works great!

Now, the tricky part.

I want to get the above, but with the agent(s) details. eg $this->reseller->with('users')->with_agents()->get_all()

I tried the following:

public function with_agents() {
    $this->db->select('users.first_name AS agent_name');
    $this->db->join('agents_resellers', 'users_resellers.reseller_id = resellers.id', 'LEFT');
    $this->db->join('users u', 'u.id = agents_resellers.user_id', 'LEFT');

    return $this
}

But I get an error:

Notice 0 - Undefined property: stdClass::$owner_id ... application\core\MY_Model.php on line 473

Sooo, how can I write a custom "with()" method, that has multiple joins, and where it is fetching one or more results? (not just one result like the user join)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions