Re: Select para categorias

2008-02-08 Por tôpico etapombas

Caras consegui resolver meu problema.

Josenivaldo, um post pertence a uma categoria.

Fiz assim e deu certo:
Categoria Model
  var $hasOne = array('Post');
  var $displayField = 'titulo';

Post Model
  var $name = 'Post';
  var $belongsTo = 'Categoria';
  var $validate = array('valor' => VALID_NUMBER);

Tobias, eu estou usando a versão 1.1.x mas mesmo assim consegui

Ficou desta forma:
Post Controller
  $this -> set('categorias', $this -> Post -> Categoria ->
generateList(null, 'titulo ASC'));

Post View
  selectTag('Post/categoria_id', $categorias); ?>


Notem que existe uma validação no modelo do post.
Quando o campo esta em um formato inválido a variável $categorias do
controlador perde o valor =/
Por que será que gera esse conflito?
--~--~-~--~~~---~--~~
Você recebeu esta mensagem porque está inscrito no Grupo "Cake PHP Português" 
em Grupos do Google.
 Para postar neste grupo, envie um e-mail para cake-php-pt@googlegroups.com
 Para cancelar a sua inscrição neste grupo, envie um e-mail para [EMAIL 
PROTECTED]
 Para ver mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-BR
-~--~~~~--~~--~--~---



Re: Select para categorias

2008-02-08 Por tôpico Tobias Taurian

Supondo que os relacionamentos já estejam feitos e que você esteja
usando a versão 1.2 do cake é só você fazer isso no controller de
posts

$this->set('categories',$this->Post->Category->generateList());

e no view

input('category_id',array('options'=>
$categories,'type'=>'select'); ?>

pronto um campo select populado com as categorias já ta ae...

se você não tiver gerado models nem controllers ainda, posta ae que eu
boto um exemplo pra vc.


On Feb 7, 12:50 pm, etapombas <[EMAIL PROTECTED]> wrote:
> Galera estou com uma dúvida de iniciante.
> Eu preciso criar um select com todas categorias, pois na hora
> cadastrar um 'post' (exemplo) eu preciso informar para qual categoria
> este post pertence.
>
> Obrigado ;)

--~--~-~--~~~---~--~~
Você recebeu esta mensagem porque está inscrito no Grupo "Cake PHP Português" 
em Grupos do Google.
 Para postar neste grupo, envie um e-mail para cake-php-pt@googlegroups.com
 Para cancelar a sua inscrição neste grupo, envie um e-mail para [EMAIL 
PROTECTED]
 Para ver mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-BR
-~--~~~~--~~--~--~---



Re: Select para categorias

2008-02-08 Por tôpico Josenivaldo Benito Junior
Bruno,

Perai! Deixa eu entender.

1) Um post pertence a uma categoria certo?

ou

2) Um post pertece a várias categorias? (um post pode estar em duas
categorias ao mesmo tempo)

Assumindo o caso 1 acima:

A tabela (modelo) post deveria conter um campo chamado "categoria_id". Na
tabela categoria não precisa referenciar post mas, deve possuir uma chave
primária chamada id. No modelo post você fará uma relação "hasOne" para
categoria e no modelo categoria fará uma relação "hasMany" com post.

Até aqui, seus modelos parecem ok. Mas veja o SQL, ele pesquisa por "
Categoria.post_id" = [...]. Deveria ser "Categoria.id = Post.categoria_id".

Se o cake montou esse SQL sozinho, reveja suas declarações hasOne e hasMany
pois o campo post_id não existe na tabela Categoria (e nem deve existir).

Abraço,
Benito.

On Feb 8, 2008 7:20 PM, Bruno Trazzini <[EMAIL PROTECTED]> wrote:

>
> Poxa cara fiz os relacionamentos mas esta dando erro:
> *
> Query:* SELECT `Post`.`id`, `Post`.`categoria_id`, `Post`.`titulo`,
> `Categoria`.`id`, `Categoria`.`titulo` FROM `posts` AS `Post`
> LEFT JOIN `categorias` AS `Categoria` ON (`Categoria`.`entrada_id` =
> `Post`.`id`) WHERE 1 = 1
> *Warning*: *SQL Error:* 1054: Unknown column 'Categoria.post_id' in 'on
> clause' in
> */home/bru/Sites/cake/cake/libs/model/datasources/dbo_source.php* on
> line *440*
>
> TABELAS:
> categorias
> id int
> titulo varchar
>
> posts
> id
> titulo
> categoria_id
>
>
> MODELOS:
> post model
> var $hasOne = 'Categoria';
>
> categoria model
> var $hasMany = 'Entrada';**
>
> >
>

--~--~-~--~~~---~--~~
Você recebeu esta mensagem porque está inscrito no Grupo "Cake PHP Português" 
em Grupos do Google.
 Para postar neste grupo, envie um e-mail para cake-php-pt@googlegroups.com
 Para cancelar a sua inscrição neste grupo, envie um e-mail para [EMAIL 
PROTECTED]
 Para ver mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-BR
-~--~~~~--~~--~--~---



Re: Select para categorias

2008-02-08 Por tôpico etapombas

corrigindo:

 Query:* SELECT `Post`.`id`, `Post`.`categoria_id`, `Post`.`titulo`,
`Categoria`.`id`, `Categoria`.`titulo` FROM `posts` AS `Post`
LEFT JOIN `categorias` AS `Categoria` ON (`Categoria`.`post_id` =
`Post`.`id`) WHERE 1 = 1
--~--~-~--~~~---~--~~
Você recebeu esta mensagem porque está inscrito no Grupo "Cake PHP Português" 
em Grupos do Google.
 Para postar neste grupo, envie um e-mail para cake-php-pt@googlegroups.com
 Para cancelar a sua inscrição neste grupo, envie um e-mail para [EMAIL 
PROTECTED]
 Para ver mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-BR
-~--~~~~--~~--~--~---



Re: Select para categorias

2008-02-08 Por tôpico Bruno Trazzini

Poxa cara fiz os relacionamentos mas esta dando erro:
*
Query:* SELECT `Post`.`id`, `Post`.`categoria_id`, `Post`.`titulo`, 
`Categoria`.`id`, `Categoria`.`titulo` FROM `posts` AS `Post`
LEFT JOIN `categorias` AS `Categoria` ON (`Categoria`.`entrada_id` = 
`Post`.`id`) WHERE 1 = 1
*Warning*: *SQL Error:* 1054: Unknown column 'Categoria.post_id' in 'on 
clause' in 
*/home/bru/Sites/cake/cake/libs/model/datasources/dbo_source.php* on 
line *440*

TABELAS:
categorias
id int
titulo varchar

posts
id
titulo
categoria_id


MODELOS:
post model
var $hasOne = 'Categoria';

categoria model
var $hasMany = 'Entrada';**

--~--~-~--~~~---~--~~
Você recebeu esta mensagem porque está inscrito no Grupo "Cake PHP Português" 
em Grupos do Google.
 Para postar neste grupo, envie um e-mail para cake-php-pt@googlegroups.com
 Para cancelar a sua inscrição neste grupo, envie um e-mail para [EMAIL 
PROTECTED]
 Para ver mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-BR
-~--~~~~--~~--~--~---



Re: Select para categorias

2008-02-08 Por tôpico Josenivaldo Benito Junior
Por acaso você colocou a as relações entre os modelos Post e Categoria?

post hasOne categoria
e
categoria hasMany posts

outra coisa, veja que é $this->Categoria e não $this->$Catetoria.

Veja ai e fala para agente.

Abraço,
Benito

2008/2/8 Bruno Trazzini <[EMAIL PROTECTED]>:

>
> Obrigado pela ajuda, mas isso eu devo colocar dentro do controlador Post
> certo?
> Dai a mensagem de erro foi *Undefined property:
> PostsController::$Categoria*
>
>
> Josenivaldo Benito Junior escreveu:
> > olá, supondo que o seu modelo chama-se Category basta, no controler
> fazer:
> >
> > $categories = $this->Category->findAll('list');
> > ...
> > $this->set(compact('categories'));
> >
> >
> > O próprio bake gera dessa forma.
> > Perdoe qualquer erro de sintaxe.
> >
> > Abraço,
> > Benito.
> >
> > 2008/2/7 etapombas <[EMAIL PROTECTED]
> > >:
> >
> >
> > Galera estou com uma dúvida de iniciante.
> > Eu preciso criar um select com todas categorias, pois na hora
> > cadastrar um 'post' (exemplo) eu preciso informar para qual
> categoria
> > este post pertence.
> >
> > Obrigado ;)
> >
> >
> > >
>
>
> >
>

--~--~-~--~~~---~--~~
Você recebeu esta mensagem porque está inscrito no Grupo "Cake PHP Português" 
em Grupos do Google.
 Para postar neste grupo, envie um e-mail para cake-php-pt@googlegroups.com
 Para cancelar a sua inscrição neste grupo, envie um e-mail para [EMAIL 
PROTECTED]
 Para ver mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-BR
-~--~~~~--~~--~--~---



Re: Select para categorias

2008-02-08 Por tôpico Bruno Trazzini

Obrigado pela ajuda, mas isso eu devo colocar dentro do controlador Post 
certo?
Dai a mensagem de erro foi *Undefined property: PostsController::$Categoria*


Josenivaldo Benito Junior escreveu:
> olá, supondo que o seu modelo chama-se Category basta, no controler fazer:
>
> $categories = $this->Category->findAll('list');
> ...
> $this->set(compact('categories'));
>
>
> O próprio bake gera dessa forma.
> Perdoe qualquer erro de sintaxe.
>
> Abraço,
> Benito.
>
> 2008/2/7 etapombas <[EMAIL PROTECTED] 
> >:
>
>
> Galera estou com uma dúvida de iniciante.
> Eu preciso criar um select com todas categorias, pois na hora
> cadastrar um 'post' (exemplo) eu preciso informar para qual categoria
> este post pertence.
>
> Obrigado ;)
>
>
> >


--~--~-~--~~~---~--~~
Você recebeu esta mensagem porque está inscrito no Grupo "Cake PHP Português" 
em Grupos do Google.
 Para postar neste grupo, envie um e-mail para cake-php-pt@googlegroups.com
 Para cancelar a sua inscrição neste grupo, envie um e-mail para [EMAIL 
PROTECTED]
 Para ver mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-BR
-~--~~~~--~~--~--~---



Re: Select para categorias

2008-02-08 Por tôpico Josenivaldo Benito Junior
olá, supondo que o seu modelo chama-se Category basta, no controler fazer:

$categories = $this->Category->findAll('list');
...
$this->set(compact('categories'));


O próprio bake gera dessa forma.
Perdoe qualquer erro de sintaxe.

Abraço,
Benito.

2008/2/7 etapombas <[EMAIL PROTECTED]>:

>
> Galera estou com uma dúvida de iniciante.
> Eu preciso criar um select com todas categorias, pois na hora
> cadastrar um 'post' (exemplo) eu preciso informar para qual categoria
> este post pertence.
>
> Obrigado ;)
>
> >
>

--~--~-~--~~~---~--~~
Você recebeu esta mensagem porque está inscrito no Grupo "Cake PHP Português" 
em Grupos do Google.
 Para postar neste grupo, envie um e-mail para cake-php-pt@googlegroups.com
 Para cancelar a sua inscrição neste grupo, envie um e-mail para [EMAIL 
PROTECTED]
 Para ver mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-BR
-~--~~~~--~~--~--~---



Select para categorias

2008-02-07 Por tôpico etapombas

Galera estou com uma dúvida de iniciante.
Eu preciso criar um select com todas categorias, pois na hora
cadastrar um 'post' (exemplo) eu preciso informar para qual categoria
este post pertence.

Obrigado ;)

--~--~-~--~~~---~--~~
Você recebeu esta mensagem porque está inscrito no Grupo "Cake PHP Português" 
em Grupos do Google.
 Para postar neste grupo, envie um e-mail para cake-php-pt@googlegroups.com
 Para cancelar a sua inscrição neste grupo, envie um e-mail para [EMAIL 
PROTECTED]
 Para ver mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-BR
-~--~~~~--~~--~--~---