use*_*261 11 alias cakephp model
在用户模型中:
var $hasMany = array(
'Photo' => array(
'className' => 'Photo',
'foreignKey' => 'owner_id',
...
),
);
Run Code Online (Sandbox Code Playgroud)
在照片模型中:
var $belongsTo = array(
'Owner' => array(
'className' => 'User',
'foreignKey' => 'owner_id',
...
),
);
Run Code Online (Sandbox Code Playgroud)
这里有一个用户有很多照片.所以我的问题是,这里的别名是'Owner',这让我清楚地理解'User'的确切含义,但这是使用别名的唯一原因吗?它会影响用户模型中的"照片"吗?或者如何在cakephp中使用'所有者'?
我不太明白模型中别名的含义.感谢您的帮助!
Rab*_*ire 28
别名的两个有用场景:
1.同一型号的多个外键
例如,您的photos
表有两个字段:created_user_id
&modified_user_id
var $belongsTo = array(
'CreatedUser' => array(
'className' => 'User',
'foreignKey' => 'created_user_id',
...
),
'ModifiedUser' => array(
'className' => 'User',
'foreignKey' => 'modified_user_id',
...
),
);
Run Code Online (Sandbox Code Playgroud)
2.创建特定于应用程序域的逻辑单词
使用数组中的conditions字段,您可以指定不同类型的模型:
var $hasMany = array(
'ApprovedUser' => array(
'className' => 'User',
'foreignKey' => 'group_id',
'conditions' => array(
'User.approved' => 1,
'User.deleted' => 0
),
...
),
'UnapprovedUser' => array(
'className' => 'User',
'foreignKey' => 'group_id',
'conditions' => array(
'User.approved' => 0,
'User.deleted' => 0
),
...
),
'DeletedUser' => array(
'className' => 'User',
'foreignKey' => 'group_id',
'conditions' => array('User.deleted' => 1),
...
),
);
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,组模型具有不同类型的用户(已批准,未批准和已删除).使用别名有助于使您的代码非常优雅.
它允许你做一些事情,比如$this->Owner->read(null,$userId);
你可以拥有一个 OwnersController 和视图/所有者。
这是……一个别名。从某种意义上说,User 是 db 表 users 的别名。
一个更好的例子:我有一个 CMS,我使用表格文章来表示文章、博客项目和新闻。这三个名称是同一个表的别名,允许我设置不同的模型、关系和行为。所以我有一个 BlogItemsController 和一个 NewsController 以及一个 ArticlesController。
归档时间: |
|
查看次数: |
8966 次 |
最近记录: |