【发布时间】:2021-02-26 17:45:37
【问题描述】:
如何使用 JOINS 在 renderDefault 函数中创建查询?我已经看了一段时间的 nette 文档,但似乎找不到我的答案。所以想请教有经验的人。谁能知道答案?
** 假设您收到了这个查询**
SELECT a.id, a.firstname, a.lastname, b.name FROM racers a JOIN types b ON b.id = a.type
你想这样创建它:
public function renderDefault(): void
{
$this->template->racers = $this->database->table('racers');
}
我的一个想法是做这样的事情
public function renderDefault(): void
{
$this->template->racers = $this->database->table('racers')
->select('racers.id, racers.firstname, racers.lastname, types.name')
->joinWhere('types', 'types.id = racers.type');
}
由于某种原因,“我的”查询似乎有效,直到我需要在拿铁咖啡的 foreach 循环中使用它。 这就是为什么我想知道有什么更好的方法来做到这一点。
{foreach $racers as $racer}
<tr>
<th scope="row">{$racer->id}</th>
<td>{$racer->firstname}</td>
<td>{$racer->lastname}</td>
<td>{$racer->name}</td>
</tr>
{/foreach}
错误:
Nette\InvalidArgumentException
No reference found for $racers->types.
【问题讨论】: