首先按USER ID搜索接收者ID,然后按接收者ID定位数据

时间:2010-07-13 17:10:13

标签: cakephp cakephp-1.2

我正在使用cakePHP 1.26。 我在localhost数据库中得到了一个包含一些数据的简单表:

user_id | message    | receiver_id
-----------------------------
1       | helloworld | 12
2       | hi there   | 12

假设系统现在收到用户的$ userid 用户只获得了用户ID。他想搜索特定接收者收到的所有消息 以下是我上述案例的代码:

$receiverID=$this->user->read('receiver_id', $userid); // find the receiver ID
$data=$this->user->findByreceiver_id($receiverID); //then retrieve data by the receiver ID
debug($data);

代码不整洁,看起来很笨拙 我不确定在这种情况下是否有最佳方法。

请告知。

2 个答案:

答案 0 :(得分:1)

我的意思是,你可以这样做:

$data = $this->User->findByreceiver_id( $this->User->read( 'receiver_id', $userid ) );

这假设您的上述代码按预期工作。

或者你可以在模型中隐藏一些语法。编写一个Model :: find_by_receiver($ user_id),它将包含实际的find调用,并返回它。但是,封装器似乎有点过分。但它会使你的控制器显得更整洁。

答案 1 :(得分:1)

来自食谱的

This example可能有所帮助。