gpt4 book ai didi

php - 每个表字段(模型)有一个 get 方法

转载 作者:行者123 更新时间:2023-11-29 13:05:39 24 4
gpt4 key购买 nike

我有两个相互关联的模型。在一个特定的方法中,我需要在另一个方法中选择一个字段,我通常创建一个方法来仅提取一个字段,如果该字段将来发生变化,我将不得不仅更改函数的返回..这里是示例

我目前使用以下内容:(这只是一个示例,显然还有更多字段需要获取)

用户模型

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);
}

这是很多代码需要编写,因为如果我想获得更多字段,我必须为每个字段编写一种方法..如果我不这样做,那么当字段名称更改时我将有在所有通话中重新写下他的名字......更好的方法是什么?

最佳答案

为什么要获取单个字段?特别是如果您需要多个?这没有多大意义。获取整个记录(所有字段,或选择您需要的 3-4 个)然后处理数据比对数据库进行多次查询更有效。这是低效且重复的,不是很 DRY。

CakePHP 已经提供了一种方法,Model::field() .

$this->Server->User->field('username', array(
'conditions' => array(
'User.server_id' => $serverId
)
));

但就像我说的,你为什么不这样做呢?

$this->Server->find('first', array(
'contain' => array(
'User'
),
'conditions' => array(
'User.server_id' => $serverId
)
));

关于php - 每个表字段(模型)有一个 get 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22745807/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com