If it's hasMany then I think your relationship should be:

var $hasMany = array(
        'Book' => array(
            'className' => 'Book',
            'foreignKey' => 'city_id', // books table has city_id
            'conditions' => '',
            'fields' => '',
            'order' => ''
        ));

In that case, Book belongsTo City

class Book extends AppModel {
  var $belongsTo = array('City', 'Author');
}

Then you can paginate like the example I had above since it will LEFT join 
the city models for all the books, as long as you contain the city model:

// in books controller
$this->paginate = array(
  'contain' => array('City', 'Author');
);
$this->paginate('Book'); // paginate from the book model to be able to sort 
by Book, Author or City

On Thursday, April 26, 2012 3:06:34 PM UTC-7, Hill180 wrote:
>
> City hasMany books, books only have one author.
>
> City.name didn't work
>
> var $hasMany = array(
>         'Book' => array(
>             'className' => 'Book',
>             'foreignKey' => 'book_id',
>             'conditions' => '',
>             'fields' => '',
>             'order' => ''
>         ));
>
> On Thu, Apr 26, 2012 at 7:46 AM, jeremyharris <[email protected]>wrote:
>
>> Is City a hasOne or belongsTo relationship? If so, and your find code is 
>> using contain or recursive to include those in the results, you can do this:
>>
>> $this->Paginator->sort('Where Written', 'City.name');
>>
>> Check your data and SQL queries to see if it's joined that way.
>>
>>
>> On Wednesday, April 25, 2012 4:29:26 PM UTC-7, Hill180 wrote:
>>>
>>> Trying to use the paginator in the view
>>>
>>> I have an Author who is has a Book and where the "book" was written (
>>> book_id.name, city_id.name) 
>>> Author sort works, title sort work, but not the sort for city_id. I can 
>>> sort by the id, but obviously this won't work because 
>>> the id has nothing to do with the name of the city.
>>>
>>>
>>>
>>> <th><?php echo $this->Paginator->sort('**Author', 'name'); ?></th> 
>>>  <th><?php echo $this->Paginator->sort('Book', 'title.name'); ?></th> 
>>>  <th><?php echo $this->Paginator->sort('Where Written', 'title.city_id'); 
>>> ?></th> (sorts, but the names are not sorted because
>>> it is using the id)
>>>
>>> need something like this
>>> <th><?php echo $this->Paginator->sort('Where Written', '
>>> title.city_id.name'); ?></th> //does not work.
>>>
>>> Is there a way to get this to work, or is it a customer pagination?
>>>
>>> thanks..  
>>> j
>>>
>>  -- 
>> Our newest site for the community: CakePHP Video Tutorials 
>> http://tv.cakephp.org 
>> Check out the new CakePHP Questions site http://ask.cakephp.org and help 
>> others with their CakePHP related questions.
>>  
>>  
>> To unsubscribe from this group, send email to
>> [email protected] For more options, visit this group 
>> at http://groups.google.com/group/cake-php
>>
>
>

-- 
Our newest site for the community: CakePHP Video Tutorials 
http://tv.cakephp.org 
Check out the new CakePHP Questions site http://ask.cakephp.org and help others 
with their CakePHP related questions.


To unsubscribe from this group, send email to
[email protected] For more options, visit this group at 
http://groups.google.com/group/cake-php

Reply via email to