以下代码仅返回错误:在表“users”中找不到记录
if($this->Users->get($uid)->isEmpty()) {
//do something
}
因为表是空的,所以如果表是空的,我想自定义它,并在浏览器中调用一个新页面
Table::get()
将立即评估查询并返回一个实体,或者如果给定主键的记录不存在则抛出异常,即它不返回查询,您不能调用isEmpty()
关于结果。
如果您正在使用Table::get()
你可以抓住RecordNotFoundException
:
try {
$user = $this->Users->get($uid);
// ...
} catch (\Cake\Datasource\Exception\RecordNotFoundException $exeption) {
// record doesn't exist
}
如果你想使用isEmpty()
,您需要使用常规查询:
$query = $this->Users->findById($uid);
if ($query->isEmpty()) {
// record doesn't exist
}
如果您实际上不需要结果,您可以使用Table::exists()
:
$exists = $this->Users->exists(['id' => $uid]);
if ($exists !== true) {
// record doesn't exist
}
or a COUNT
query:
$count = $this->Users->findById($uid)->count();
if ($count !== 1) {
// record doesn't exist
}
See also
- Cookbook > 数据库访问和 ORM > 检索数据和结果集 > 通过主键获取单个实体
- Cookbook > 数据库访问和 ORM > 检索数据和结果集 > 检查查询或结果集是否为空
- API > \Cake\Datasource\RepositoryInterface::exists()
- Cookbook > 数据库访问和 ORM > 查询生成器 > 返回记录总数
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)