So the book belongsTo will look something like this:

var $belongsTo = array(
  'BillingCity' => array(
    'className' => 'City',
    'foreignKey' => 'billing_city_id'
  ), 
  'MainCity' => array(
    'className' => 'City',
    'foreignKey' => 'main_city_id'
  ), 
  'Author'
);

Then your pagination needs to contain both cities (or just the one you are 
sorting by):

$this->paginate = array(
  'contain' => array('BillingCity', 'MainCity', 'Author');
);
$this->paginate('Book');

And lastly, your pagination link:

$this->Paginator->sort('Where Written', 'BillingCity.name'); // or MainCity

On Thursday, April 26, 2012 5:23:30 PM UTC-7, Hill180 wrote:
>
> You know my example was a different then my actual code (I know I should 
> have just used it)
>
> I have two cities per book.
>
> IE
>
> main_city_id (where it was written)
> billing_city_id (where the author wants to get paid)
>
> How do I distinguish them?  I can't use City.name
>
> Thanks.
>
> On Thu, Apr 26, 2012 at 3:13 PM, jeremyharris <[email protected]>wrote:
>
>> 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
>>>> cake-php+unsubscribe@**googlegroups.com<cake-php%[email protected]>For
>>>>  more options, visit this group at 
>>>> http://groups.google.com/**group/cake-php<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
>>
>
>

-- 
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