Rav*_*mar 2 orm cakephp cakephp-3.0
我只想选择cakephp 3中除一个字段之外的所有字段。
Ex. $this->select('fname', 'lname', 'mname', 'email', 'password', 'status', 'created', 'modified');
Run Code Online (Sandbox Code Playgroud)
在这里,我想选择除创建和修改之外的所有字段,因为我的另一个表有大约 30 个字段,我想选择 28 个字段,并且不想在 select 函数中提及每个字段,因为它很耗时。
你能建议一个更好的方法。
从 CakePHP 3.6 开始,该selectAllExcept()方法已被引入,它将从模式中选择属于给定表的所有列,除了在第二个参数中传递的那些列:
$query->selectAllExcept($table, ['modified', 'created']);
Run Code Online (Sandbox Code Playgroud)
在早期版本中,您必须手动执行此操作,即从架构中获取所有可能的列并删除那些您不想包含的列,例如:
$query->select(
array_diff($table->schema()->columns(), ['modified', 'created']);
);
Run Code Online (Sandbox Code Playgroud)
在相关说明中,检查以下要求取消选择功能的问题:https : //github.com/cakephp/cakephp/issues/6904
也可以看看