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>>

Responder a