当前位置: 首页 > 知识库问答 >
问题:

在复杂模型上找到所有

李森
2023-03-14

我只需要从4个相关表的查找中获取详细信息。我查看了文档,我可以从两个表中获取数据,但不能从其他表中获取数据。我有一个课程表,在那里我只显示相关的导师id行。这个很好用。我有一个与FK课程id上的课程表相关的课程学生表。从这个课程学生表中,我有一个链接到另一个表的字段。

课程表(fk tutor_id,但没有学生id)tutors表(链接到具有tutor_id的课程表)LESSIONS_学生表(链接到lessonID并具有studentID HABTM)SUSTORS表(链接到来自LESSIONS SUSTORS表的studentID)

所以,如果我从课程表中得到一行,我想要导师的名字(从导师表中,我现在可以这样做),学生的名字通过studentID。这是4个表,这是一个令人头痛的问题,因为文档只做简单的示例。我无法获取要显示的学生姓名或学生id

http://book.cakephp.org/2.0/en/models/retrieving-your-data.html

我试过这个,我猜我有一个HABTM和一个belongsTo的关系。当我在谷歌搜索数小时的答案时,必须在某个地方记录下来。

$这个-

class LessonsController extends AppController {
   $this->set( 'tutor',$this->Lesson->find('all', array(
             'conditions'=>array('Lesson.Tutor_id'=> 1,'Lesson.id'=>'Lesson_Students.lesson_id') ) ));



view
////////

  <?php 
      foreach ($tutor as $item):

        echo '<tr><td>'. $item['Lesson']['id'].'</td>';
      //  echo '<td>'. $item['Tutor']['id']['username'].'</td>';
        echo '<td>'. $item['Lesson']['tutor_id'].'</td>';
         echo '<td>'. $item['Tutor']['last_name'].'</td>';  
           echo '<td>'. $item['Lesson_Student']['student_id'].'</td>'; 
        echo '</tr>';
     endforeach;
     unset($item);

共有1个答案

唐珂
2023-03-14

我解决了一个类似的问题,手动添加所有需要的连接到选项数组:

'joins' => array(
    array(
        'table' => 'sales',
        'alias' => 'Sale',
        'type' => 'LEFT',
        'conditions' => array(
            'Sale.serialnumber_id = Serialnumber.id'
        )
    ),
    array(
        'table' => 'rentals',
        'alias' => 'Rental',
        'type' => 'left',
        'conditions' => array(
            'Rental.serialnumber_id = Serialnumber.id'
        )
    ),
)

然后可以在条件数组中使用所有这些字段,并将它们添加到字段数组中。

要优化整个查询,只需通过添加字段选项检索所需的字段。一个SELECT*查询(像这个)是一个速度很慢的查询,如果无用的话会产生很多流量,特别是当您查询多个表时。

 类似资料:
  • 错误:光电控制器中存在FatalErrorException。php第17行:找不到类“App\Http\Controllers\photo” 此代码出现异常-

  • 问题内容: 我正在创建一个小游戏,您在迷宫中。迷宫是在组织,描述和。就是这样。可以说每个街区都是。现在我的角色是 2m 高,迷宫应该是 4m 高。因此,如果该瓷砖上有墙,我会在彼此之间添加4个块。当然,即使使用,这在米/瓦迷宫中也是巨大的性能影响。因为这是我的第一个3D游戏,所以我想使其保持简单,并且我不想使用高级剔除技术(八叉树或其他:P)。因此,我尝试创建块而不是将其添加到我的世界中。效果不错

  • 我试图将我的rasa机器人部署到heroku,我正在使用python。 我的要求。txt文件如下所示: 空间==2.0。18 https://github.com/explosion/spacy-models/releases/download/en_core_web_md-2.0.0/en_core_web_md-2.0.0.tar.gz#egg=en_core_web_md==2.0.0 部署

  • 我可以在本地计算机上启动我的节点应用程序,但如果我从服务器上的github中提取项目并使用启动,则会出现以下错误: 找不到模块'.../模型/用户'。 导入用户=需要('.../模型/用户'); 注册管理员。ts正在尝试访问模型/用户。 以下是我在该文件中导入的方式: 这是我的文件夹结构。我在突出显示的文件中得到错误: 这是我的脚本:

  • 您好,我在类中使用模型时遇到问题。显示的错误是找不到错误类“App\Models\RegisteredUsers”。 我已经确保名称空间匹配正在使用的内容,但我反复得到同样的错误。 型号代码 控制器代码 目录App/Http/Controllers/RegisterUser-controller App/Http/模型/注册用户-模型 我用PHP artisan创建了模型和控制器。我已经尝试了从l

  • 问题内容: 在最坏的情况下,对单个对象的查找操作OR 是正确的吗?那么,对于元素查找将是? 问题答案: 是的,但这实际上是最坏的情况:如果中的所有元素都具有相同的哈希码(或导致相同存储桶的哈希码)。使用正确编写的且正态分布的密钥样本,查找为O(1)。