关于CakePHP containable,我已经四处寻找了很长一段时间,不知怎的,我觉得CakePHP代码中有一个错误。。。让我给你举个例子
假设“会计”模型与“说明”相关。
public $belongsTo = array('Instruction');
我这样做一个连接:
$options['contain'] = array(
'Instruction' => array(
'fields' => array('Instruction.id', 'Instruction.main_student_id', 'Instruction.teacher_id'),
'Student' => array(
'fields' => array('Student.id', 'Student.full_name', 'Student.invoice_payer_id'),
),
'Teacher' => array(
'fields' => array('Teacher.id', 'Teacher.full_name'),
'conditions' => array('Teacher.id' => $teacher_id)
),
)
);
return parent::find('all', $options);
所以有一个指令,一个学生和一个老师属于这个指令。我从“会计”模型中调用find
示例:
但让我们更进一步:
你能帮我理解一下吗为什么连接错误?-为什么不检索所有字段?
Containable also goes a step deeper: you can filter the data of the associated models.
http://book.cakephp.org/2.0/en/core-libraries/behaviors/containable.html#containing-更深层次的联想
您在containable上给出的条件用作筛选器,而不是联接的限制。因此,它不会返回某个教师的指令,而是返回所有指令及其关联的教师,并使用条件数组('Teacher.id')过滤教师=
尝试在教学中而不是教师中添加条件。类似的东西:
'Instruction' => array(
'Student','Teacher',
'conditions' => array('Instruction.teacher_id' => $teacher_id)
这将返回所有的会计,它将只过滤某个老师的指示。
您可以随时手动执行连接(它可能看起来不太好,但可以正常工作),只要记住在执行此操作时将containable设置为false即可。
希望这有帮助
问题内容: 我有两个表,用于存储该员工的所有个人记录,并存储每个月支付给特定员工的电话费。现在我有一个名为的函数,类似于以下内容: 此功能基本上可以找到在给定期间内支付账单的所有员工。但是我遇到一个错误 型号:: 注意:如果我跳过和条件,我将得到array的结果! 问题答案: 详细信息/注释: 1)看起来您正在使用。不要那样做改用Containable 2)您不能根据条件限制父模型包含的数据/包含
我有一个称为“Profile”的对象列表,每个Profile都有一个功能列表(一个Profile可以做的事情)和一个与该Profile关联的用户列表。 我想在一个JTable中显示这些信息。首先,用le功能显示配置文件,然后显示该配置文件中的用户。类似这样的事情: 因此,首先,我实现了一个更聪明的getRowCount()方法,然后是一个getValueAt方法,该方法在JTable中打印一个配置
问题内容: 为什么此代码不起作用? 我总是会出错。我已经启用,并且在php.ini中也是128M。如果我删除,我不会收到错误,但也不会看到图像。我所看到的是这个:- £ ,` 问题答案: 您不得在之前输出任何内容 。只需以(作为第一个文件字符)开头,然后是用于显示图像的代码即可。跳过HTML标签。 甚至不要在 header() 之前写一个空白行 。 如果要在您的html文档中显示图像,则必须在两个
问题内容: 我将项目更新为最新的Android API,该项目现在具有多个不赞成使用的方法。Android Studio是否有一种很酷的方法来列出所有包含上述方法的类,例如TODO窗口?我知道我可以遍历每个类并有条不紊地搜索代码,但是我想让自己轻松一些。任何帮助,提示和/或提示都将不胜感激。 问题答案: 如果它可以帮助其他人,请回答我的问题: 如果您去 分析 -> 检查代码… 检查完项目后,单击“
我已经在Android studio上安装了颤振,每当我在Android studio上导入新项目时,它会显示“Dart未配置下载Dart SDK或打开Dart设置” 到目前为止,代码还不错。 当我打开省道设置时 Idk在每个项目中尝试了什么,只有在新的颤振项目运行良好时才尝试。颤振版本是2.8.1 Dart版本是2.15.1 Android Studio Arctic Fox | 2020.3.