选择 cakephp 3 查询中除一个字段之外的所有字段

2023-12-06

我只想选择 cakephp 3 中除一个字段之外的所有字段。

Ex. $this->select('fname', 'lname', 'mname', 'email', 'password', 'status', 'created', 'modified');

在这里,我想选择除创建和修改之外的所有字段,因为我的其他表有大约 30 个字段,我想选择 28 个字段,并且不想提及选择函数中的每个字段,因为它很耗时。

你能建议一个更好的方法吗?


从 CakePHP 3.6 开始selectAllExcept()引入了方法,它将从属于给定表的模式中选择所有列,除了第二个参数中传递的那些列:

$query->selectAllExcept($table, ['modified', 'created']);

在早期版本中,您必须手动执行此操作,即从架构中获取所有可能的列并删除您不想包含的列,例如:

$query->select(
    array_diff($table->schema()->columns(), ['modified', 'created']);
);

在相关说明中,请检查以下要求取消选择功能的问题:https://github.com/cakephp/cakephp/issues/6904

See also

  • Cookbook > 数据库访问和 ORM > 查询生成器 > 选择特定字段
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

选择 cakephp 3 查询中除一个字段之外的所有字段 的相关文章