我假设在以下示例中的简单get()中,$ accountName必须是行的主键的值,否则它甚至知道哪个键,索引或列你正在尝试搜索。
$myAccount = TableRegistry::get('Accounts')->get($accountName);
假设我想搜索其他一些独特的索引。就我而言,它恰好只是一个varchar列。我希望结果加载到在Model / Entity / Account.php中设置的类中,在我的例子中是Account类。
答案 0 :(得分:0)
使用CakePHP检索数据有很多方法。
在你提到的那个:
TableRegistry::get('MyTable')->get($someValue);
$someValue
是主键,如果您遵循惯例,则命名为id
。
要快速检索主键以外的其他列的记录,您可能需要使用Dynamic Finders。为了理解这些动态构造方法的强大程度,您可以执行以下操作:
TableRegistry::get('Users')->findByUsername('joebob');
TableRegistry::get('Users')->findAllByUsername('joebob');
TableRegistry::get('Users')->findAllByUsernameOrEmail('joebob', 'joe@example.com');
这些例子来自文档。对于更有趣的内容,我建议您查看一下Cookbook的Retrieving Data & Results Sets部分。
编辑后,要按名称检索帐户,您可以执行以下操作:
$query = $this->Account->findByName($accountName);
如果帐户名称存储在名为name
。