Opa, essa eu sei responder. Eu fiz algo parecido com o que você quer para um trabalho da faculdade. No meu caso, eu fiz um blog, sendo que as categorias dos posts era o menu do blog.
Começado pelo começo: O nome da minha tabela é Categorias.
Crie o model, as views e o controller para tabela Categorias.
No arquivo controllers/categorias_controller.php, edite o método index e
deixe +- assim:
function index() {
$this->Categoria->recursive = -1; // pega so o nome das categorias
$categorias = $this->Categoria->findAll(); // busca no bd
if(isset($this->params['requested'])) { // verifica se outro controller
chamou este método
return $categorias; //retorna os dados para quem chamou este médoto
}
$this->set('categorias', $categorias); //se chegar até aqui é
porque éparar exibir os dados na view
'views/categorias/índex.ctp'
}
Agora é a vez de fazer o arquivo que cria o menu. Crie um arquivo, por
exemplo '/views/elements/menu.ctp' (tem que ser nessa pasta) com o conteúdo:
<ul>
<li>
<h2>Categorias</h2>
<ul>
<li><a href="/">Home</a></li>
<?php
$categorias = $this->requestAction('categorias/index'); //chama o método
criado acima
foreach($categorias as $categoria):
echo '<li>';
echo $html->link ( $categoria['Categoria']['titulo'] ,
array('controller'=>'categorias','action'=>'view',
$categoria['Categoria']['id'])) ; // exibe um link para cada categoria
echo "</li>\n" ;
endforeach;
?>
</ul>
</li>
</ul>
Por fim, faça com que o seu arquivo de layout (no meu caso
/views/layouts/default.ctp) exiba o menu:
<div id="search">
<form method="post" action="/posts/busca">
<fieldset>
<input id="PostBusca" name="data[Post][busca]" value="" class="text" />
<input id="x" type="submit" value="Search" class="button" />
</fieldset>
</form>
</div>
<?php
echo $this->renderElement('sidebar');
?>
Espero ter sido claro. Na época, para fazer este menu tomei como base o
exemplo em
http://bakery.cakephp.org/articles/view/creating-reusable-elements-with-requestaction
On Jan 10, 2008 5:20 PM, Rodrigo Maia <[EMAIL PROTECTED]> wrote:
> Olá pessoal, blz?
> Eu conheci o cake a um tempo mas agora como projeto para 2008 resolvi
> aprender OOP mais a fundo, e me aventurar no cakephp.
> Espero ajudar a comunidade e também receber ajuda.
>
> A dúvida inicial é meio conceitual. Por exemplo, eu vejo muitos tutoriais
> ensinando a fazer o famoso cadastrar, alterar, excluir e listar mas queria
> saber como é feito um site no seguinte caso: Como se da um include em um
> menu que é gerado dinamicamente pelo banco de dados em todo meu site?
> De acordo com o pouco que sei, vou chutar.
> Eu crio um método global na aplicação e chamo sempre para jogar esses
> dados no meu layout?
>
> t+
>
> --
> *Rodrigo Maia*
> [EMAIL PROTECTED] <[EMAIL PROTECTED]>
> www.livepixel.com.br
>
> >
>
--
:wq
***************************************************
* Wiliam Camilo de Andrade *
* wc.sama arroba gmail.com *
* Bacharelado em Informática - 04 *
* Universidade de São Paulo - ICMC - São Carlos *
***************************************************
------------------------------------------------------------------------
"Por que o Mário foi ao psicólogo?
Porque ele tava passando por uma fase difícil!"
"São necessários 42 músculos para socar alguém e apenas 4 para estender meu
dedo médio e mandá-lo para aquele lugar."
http://grad.icmc.usp.br/~wc/google.jpg <-- "o que vamos fazer hoje a
noite??"
Feira da fruta é a feira mais cara
A onde só da "pilão"
Tem a feira tamanho família
Tem até a feira do melão
------------------------------------------------------------------------
--~--~---------~--~----~------------~-------~--~----~
Recebeu esta mensagem porque está inscrito em Grupo "Cake PHP Português" do
Grupos Google.
Para enviar mensagens para este grupo, envie um email para
[email protected]
Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED]
Para mais opções, visite este grupo em
http://groups.google.com/group/cake-php-pt?hl=pt-PT
-~----------~----~----~----~------~----~------~--~---
<<inline: logoemail.jpg>>
