I forgot the Language model to get the *other* langs the artist uses.

public function getArtistsForLang($lang)
{
        return $this->find(
                'all',
                array(
                        'conditions' => array(
                                $this->alias.'.code' => $lang
                        ),
                        'contain' => array(
                                'Artist' => array(
                                        'ArtistsLanguage' => array(
                                                'Language'
                                        )
                                )
                        )
                )
        );
}

On Sun, Feb 10, 2013 at 8:53 PM, lowpass <zijn.digi...@gmail.com> wrote:
> Try this. I'm assuming your languages table has a 'code' column and
> the request passes a 2-letter string for the code for the desired
> language. That's probably how I'd do it but you may need to modify for
> your own setup.
>
> (This would be in the Language model.)
>
> public function getArtistsForLang($lang)
> {
>         return $this->find(
>                 'all',
>                 array(
>                         'conditions' => array(
>                                 $this->alias.'.code' => $lang
>                         ),
>                         'contain' => array(
>                                 'Artist' => array(
>                                         'ArtistsLanguage'
>                                 )
>                         )
>                 )
>         );
> }
>
> This could be improved by specifying joins to reduce the number of queries.
>
> On Sun, Feb 10, 2013 at 7:25 AM, crouch...@googlemail.com
> <crouch...@googlemail.com> wrote:
>> Hi all,
>>
>> If this topic is covered, sorry, but I don't really know what to search
>> under and all my searches resulted in nothing.
>>
>> Background:
>> Developing a site for a voice over company.
>>
>> Requirement:
>> Voice artists can have several different languages and languages can have
>> several different voice artists, each artist can have a playable recording
>> for each language.
>>
>> What am I doing:
>> Searching for all artists that can speak a given language, but want to know
>> what languages they also speak.
>>
>> Basic search:
>> $this->Language->find('all');
>>
>> Result
>> Language->Artist->ArtistsLanguage<-- Only the record to the language is
>> resulting.
>>
>> Desire
>> Language->Artist->Language->array(record 1->ArtistsLanguage, record
>> 2->ArtistsLanguage, etc...)
>>
>> Comments:
>> Basically, I am looking to find all artists for a given language. This part
>> works, but the result for the list of languages that the artists speaks only
>> results in the HABTM model record belonging to the artist.
>>
>> How can a do a round trip in a HABTM relationship?
>>
>> Thanks for all the help,
>> Jay
>> Result:
>>
>> --
>> Like Us on FaceBook https://www.facebook.com/CakePHP
>> Find us on Twitter http://twitter.com/CakePHP
>>
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "CakePHP" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to cake-php+unsubscr...@googlegroups.com.
>> To post to this group, send email to cake-php@googlegroups.com.
>> Visit this group at http://groups.google.com/group/cake-php?hl=en.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to cake-php+unsubscr...@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to