You didn't mention what version you are running, but if you using
latest 1.2 code you can use:

http://bakery.cakephp.org/articles/view/bindable-behavior-control-your-model-bindings

If you using earlier version the just use unbindModel and bindModel
customising fields, etc, before you do your query. Also you might run
into probs with bindings being reset when using paginate by default.

If you're still not convinced then just write a small sql query and
call it like:

 $data = $this->Customer->query($sql);

Adam


 On Jan 7, 11:27 pm, Travis <[EMAIL PROTECTED]> wrote:
> bump :)
>
> On Jan 6, 10:31 pm, Travis <[EMAIL PROTECTED]> wrote:
>
> > Hey everyone,
>
> > I'm trying to generate a list of employees and in that list I want to
> > show the customer which that employee belongs to.  In my db I have an
> > employees table and a customers table and each employee has a
> > customer_id field.  The problem is, I want to show the customer.name
> > field, not the customer_id.
>
> > How do I run a select statement that joins these two tables on the
> > customer_id and retrieves only the customer_name from the customers
> > table.
>
> > I need to do this from inside the employees controller. Here's my
> > models and controller code.
>
> > class EmployeeModel extends AppModel
> > {
> >         var $name               = "Employee";
> >         var $belongsTo        = "Customer";
> >         var $recursive          = 1;
>
> > }
>
> > class Customer extends AppModel
> > {
>
> >         var $name               = "Customer";
> >         var $primaryKey = 'id';
> >         var $hasMany    = array('Employee','Transaction');
> >         var $recursive  = 2;
>
> > }
>
> > class EmployeesController extends AppController
> > {
>
> >         var $name = "employees";
> >         var $helpers = array('DatePicker');
> >         var $uses =array('Employee','Customer');
> >         var $paginate = array(
> >                 'limit' => 25,
> >                 'order' => array('Employee.id' => 'DESC')
> >                 );
> > /*
> >  *
> >  *
> >  *
> >  */
> >         function index(){
>
> >                 //retrieve all of the customers for drop down box and set 
> > the data
> >                 $customerList = 
> > $this->Customer->findAll(NULL,array('id','name'));
> >                 foreach ($customerList as $customer)
> >                         $customers[$customer['Customer']['id']] = 
> > $customer['Customer']
> > ['name'];
> >                 $this->set('customers', $customers);
>
> >                 //if data is posted, retrieve all employees specific to the 
> > customer
> > id
> >                 if(!empty($this->data)){
>
> >                         $this->layout = 'default';
> >                         $dataSet = 
> > $this->paginate('Employee',array('customer_id' => 
> > $this->data['Employee']['customer_id']));
>
> >                         $this->set(compact('dataSet'));
> >                 }
>
> >                 //if no data is posted, retrieve all employees
> >                 else{
> >                         $this->layout = 'default';
> >                         $dataSet = $this->paginate('Employee');
> >                         $this->set(compact('dataSet'));
>
> >                 }
> >         }
>
> > Thanks for the help.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake 
PHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to