消息型号,我有
id/主题/评论/发件人 ID/收件人 ID
所以在消息控制器
public function index(){
$msgs = $this->Message->find();
$this->set('msgs', $msgs);
}
留言中查看
foreach ($msgs as $msg)
echo ...
endforeach
但是我不想输出发件人 ID 和收件人 ID,而是希望能够通过已设置的 API 获取用户名,http://example.com/userid/1,它将返回用户名一个 JSON。
我知道在视图中执行此操作是一种不好的做法,但是您能建议我应该如何在控制器中执行此操作吗?
为您的 API 调用创建一个模型,告诉 cake 不要为其查找数据库表,并使用具有从那里提取用户名的逻辑的函数。
App::uses('AppModel', 'Model');
class MyAPI extends AppModel {
public $useTable = false;
public function getUserNameForID(Int $id = null) {
//Your logic here
return $userName;
}
}
然后在您的控制器中,您需要加载 MyAPI 模型并递归地传递您的数据
$this->loadModel('MyAPI');
foreach (...) {
...
$userName = $this->MyAPI->getUserNameForID($userID);
...
}