Boa noite, muito obrigado pela ajuda pessoal. Eu refiz tudo acompanhando pelo vídeo. Comparando o código da minha primeira tentativa notei que minha declaração use estava errada. A solução foi definir corretamente este parâmetro.
use Cake\ORM\TableRegistry;
Entretanto notei que há outros erros na parte escrita da video aula. No arquivo index.cpt falta abrir e fechar a tag php. Lá está assim:
<table class=”table”>
<thead>
<tr>
<th>Id</th>
<th>Nome</th>
<th>Preço</th>
<th>Descrição</th>
</tr>
</thead>
<tbody>
<?php foreach($produtos as $produto) {
<tr>
<td><?= $produto['id']; ?></td>
<td><?= $produto['nome']; ?></td>
<td><?= $produto['preco']; ?></td>
<td><?= $produto['descricao']; ?></td>
</tr>
} ?>
</tbody>
</table>
Isso ocasiona o seguinte erro:
syntax error, unexpected '<'
Error in: ROOT\src\Template\Produtos\index.ctp, line 13
O código deveria estar assim:
<table class=”table”>
<thead>
<tr>
<th>Id</th>
<th>Nome</th>
<th>Preço</th>
<th>Descrição</th>
</tr>
</thead>
<tbody>
<?php foreach($produtos as $produto) {?>
<tr>
<td><?= $produto['id']; ?></td>
<td><?= $produto['nome']; ?></td>
<td><?= $produto['preco']; ?></td>
<td><?= $produto['descricao']; ?></td>
</tr>
<?php } ?>
</tbody>
</table>
Outro erro notado no código escrito está no arquivo ProdutosController, está faltando um - no $this->set e ocasiona o seguinte erro:
Call to undefined function App\Controller\set()
Error in: ROOT\src\Controller\ProdutosController.php, line 13
public function index() {
$produtosTable = TableRegistry::get(‘Produtos’);
$produtos = $produtosTable->find(‘all’);
$this>set(‘produtos’,$produtos);
}
Por gentileza, algum moderador poderia corrigir os erros apontados acima no código escrito na atividade 04 da aula 02.