Model Configuration Association Functions void model
Sets up a hasMany
association between this model and the specified one.
Name | Type | Required | Default | Description |
---|---|---|---|---|
name | string | Yes | Gives the association a name that you refer to when working with the association (in the include argument to findAll , to name one example). |
|
modelName | string | No | Name of associated model (usually not needed if you follow CFWheels conventions because the model name will be deduced from the name argument). |
|
foreignKey | string | No | Foreign key property name (usually not needed if you follow CFWheels conventions since the foreign key name will be deduced from the name argument). |
|
joinKey | string | No | Column name to join to if not the primary key (usually not needed if you follow CFWheels conventions since the join key will be the table's primary key/keys). | |
joinType | string | No | outer | Use to set the join type when joining associated tables. Possible values are inner (for INNER JOIN ) and outer (for LEFT OUTER JOIN ). |
dependent | string | No | false | Defines how to handle dependent model objects when you delete an object from this model. delete / deleteAll deletes the record(s) (deleteAll bypasses object instantiation). remove / removeAll sets the forein key field(s) to NULL (removeAll bypasses object instantiation). |
shortcut | string | No | Set this argument to create an additional dynamic method that gets the object(s) from the other side of a many-to-many association. | |
through | string | No | [runtime expression] | Set this argument if you need to override CFWheels conventions when using the shortcut argument. Accepts a list of two association names representing the chain from the opposite side of the many-to-many relationship to this model. |
// Specify that instances of this model has many comments (the table for the associated model, not the current, should have the foreign key set on it).
hasMany("comments");
// Specify that this model (let's call it `reader` in this case) has many subscriptions and setup a shortcut to the `publication` model (useful when dealing with many-to-many relationships).
hasMany(name="subscriptions", shortcut="publications");
// Automatically delete all associated `comments` whenever this object is deleted.
hasMany(name="comments", dependent="deleteAll");
// When not following CFWheels naming conventions for associations, it can get complex to define how a `shortcut` works.
// In this example, we are naming our `shortcut` differently than the actual model's name.
// In the models/Customer.cfc `config()` method.
hasMany(name="subscriptions", shortcut="magazines", through="publication,subscriptions");
// In the models/Subscription.cfc `config()` method.
belongsTo("customer");
belongsTo("publication");
// In the models/Publication `config()` method.
hasMany("subscriptions");