I’ve got two tables – users and servers, and for the HABTM relationship, users_servers. Users HABTM servers and vice versa.
I’m trying to find a way for Cake to select the servers that a user is assigned to.
I’m trying things like $this->User->Server->find('all'); which just returns all the servers, regardless of whether they belong to the user.
$this->User->Server->find('all', array('conditions' => array('Server.user_id' => 1))) just gives an unknown column SQL error.
I’m sure I’m missing something obvious but just need someone to point me in the right direction.
Thanks!
Your table names are right. There are many ways to do this:
Use the Containable behavior
In your AppModel, set the following:
Then, use the following code to query your servers:
Note that we are querying the User model, instead of the Server model to accomplish this.
Use bindModel
I personally don’t recommend using bindModel a lot. Eventually, your code becomes a bit unmanagable. You should try using the Containable behavior whenever possible. The code looks cleaner and simpler. More on the bindModel method can be found here.
HTH.