在消息模型中,我有
ID /主题/注释/ SenderID / RecipientID
所以在消息控制器
中public function index(){
$msgs = $this->Message->find();
$this->set('msgs', $msgs);
}
在消息视图
中foreach ($msgs as $msg)
echo ...
endforeach
但不是输出发件人ID和收件人ID,我希望能够通过已经设置的API http://domain.com/userid/1获取用户名,它将在json中返回用户名。
我知道在视野中执行此操作是一种不好的做法,但您能否建议我应该如何在控制器中执行此操作?
答案 0 :(得分:1)
为你的API调用创建一个模型,告诉cake不要为它寻找一个db表,并使用逻辑来提取用户名。
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);
...
}