No, it does not take away CakePHP automagic (CakePHP is so good).

Setup your associations to include the condition.
class Counsellor extends AppModel {

var $name = 'Counsellor';

var $hasMany = array(
        'Agency' => array(
            'className'  => 'Agency',
            'conditions' => 'Agency.creator_class = \'Counsellor\'',
            'foreignKey' => 'creator_id'
        )
);

} // the same goes for Coordinator


class Agency extends AppModel {

var $name = 'Agency';

var $belongsTo = array(
        'Counsellor' => array(
            'className'  => 'Counsellor',
            'conditions' => 'Agency.creator_class = \'Counsellor\'',
            'foreignKey' => 'creator_id'
        ),
        'Coordinator' => array(
            'className'  => 'Coordinator',
            'conditions' => 'Agency.creator_class = \'Coordinator\'',
            'foreignKey' => 'creator_id'
        )
);

}

Anyway, it's just an idea, there should be others ways.

HTH,
Dardo Sordi.

On Wed, Mar 5, 2008 at 5:00 AM, chefsmart <[EMAIL PROTECTED]> wrote:
>
>  It does take away cakePHP's "automagic" right. How do I go about
>  implementing this in the cakePHP model and controller?
>
>
>  On Mar 4, 10:39 pm, "b logica" <[EMAIL PROTECTED]> wrote:
>  > True. But I meant in the database itself. Although, one can create a
>  > unique index on (model, foreign_key).
>  >
>  > On Tue, Mar 4, 2008 at 12:30 PM, Dardo Sordi Bogado
>  >
>
> > <[EMAIL PROTECTED]> wrote:
>  >
>  > >  You can use it as foreign key and specify that the creator_class =
>  > >  'something' in the conditions (you can put condiftions to
>  > >  associations).
>  >
>
> > >  On Tue, Mar 4, 2008 at 3:03 PM, b logica <[EMAIL PROTECTED]> wrote:
>  >
>  > >  >  That's what I'm doing for a couple of my tables. I have a foreign_key
>  > >  >  field and a model field. It does mean that one cannot define a proper
>  > >  >  foreign key so you'll need to write some logic to handle that
>  > >  >  association.
>  >
>
>
> > >  >  On Tue, Mar 4, 2008 at 8:01 AM, chefsmart <[EMAIL PROTECTED]> wrote:
>  >
>  > >  >  >  Thanks for your input. If I understand you correctly, you're
>  > >  >  >  suggesting I have a creator_id column in my agencies table and 
> another
>  > >  >  >  creator_class column to indicate the type of creator. I guess 
> then I
>  > >  >  >  wouldn't be able to define creator_id as a foreign key. Am i 
> getting
>  > >  >  >  this correctly?
>  >
>  > >  >  >  On Mar 4, 4:24 pm, "Dardo Sordi Bogado" <[EMAIL PROTECTED]> wrote:
>  > >  >  >  > I would go using a creator_id and creator_class, then use one 
> as the
>  > >  >  >  > foreingKey and the other as a condition in the associations.
>  >
>  > >  >  > > On Tue, Mar 4, 2008 at 7:31 AM, chefsmart <[EMAIL PROTECTED]> 
> wrote:
>  >
>  > >  >  >  > >  Hi all,
>  >
>  > >  >  >  > >  I just started out with cakePHP and am quite impressed by 
> how much can
>  > >  >  >  > >  be achieved in a short time.
>  >
>  > >  >  >  > >  I'm stuck with a design issue and need some guidance. Please.
>  >
>  > >  >  >  > >  Let's say I have two models: 1) Counsellor 2) Coordinator. 
> There is a
>  > >  >  >  > >  third model called Agency. An Agency can only be created by a
>  > >  >  >  > >  Counsellor or a Coordinator. I need to store information in 
> the
>  > >  >  >  > >  database about each Agency's creator.
>  >
>  > >  >  >  > >  Now if I call my database field agencies.createdby, how 
> would I go
>  > >  >  >  > >  about tying it up with cakePHP's convention? How would I go 
> about
>  > >  >  >  > >  determining whether the creator was a Counsellor or a 
> Coordinator?
>  > >  >  >  > >  Should I have two fields (coordinator_id, and counsellor_id) 
> in the
>  > >  >  >  > >  database in place of one createdby field?
>  >
>  > >  >  >  > >  Thanks in advance.
>  >
>

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