【发布时间】:2014-05-09 20:40:24
【问题描述】:
我有两个相互关联的模型。在一个特定的方法中我需要在另一个上选择一个字段,我通常创建一个方法来只提取一个字段,如果将来该字段发生变化,我将只需要更改函数的返回 .. 这里是示例
我目前使用以下:(这只是一个例子,显然还有更多的字段要获取)
用户模型
function getUsername($user_id){
$this->id = $user_id;
return $this->field('my_username_field');
}
服务器模型
function getUserIdByServerId($server_id){
$this->id = $server_id;
return $this->field('my_user_id_field');
}
function getUsernameByServerId($server_id){
$user_id = $this->getUserIdByServerId($server_id);
return $this->User->getUsername($user_id);
}
要编写很多代码,因为如果我想获得更多字段,我将不得不为每个字段编写一种方法。如果我不这样做,那么当字段名称更改时,我将拥有在所有电话中重写他的名字.. 有什么更好的方法?
【问题讨论】:
-
看看php.net/manual/en/language.oop5.overloading.php。顺便说一句,我不是CakePHP用户,可能有框架特定的方式。
-
有,但是如果我更改字段名称怎么办?我每次调用都得改,不是更容易为每个字段设置一个方法吗?
-
所以任何一种方式都是正确的?最好是复制和粘贴每个字段还是一个函数?我只会有胖类(模型),但维护更容易
-
说真的,哪个天才对鼓励复制和粘贴代码的非常糟糕做法的评论投了赞成票?可惜我不能投票给 cmets。