Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Não é possível usar informações do model belongsTo #1

Open
CauanCabral opened this issue May 16, 2010 · 3 comments
Open

Não é possível usar informações do model belongsTo #1

CauanCabral opened this issue May 16, 2010 · 3 comments

Comments

@CauanCabral
Copy link

Cenário: Post hasMany Tag (com a recíproca, Tag belongsTo Post definida)

Descrição: Ao tentar usar algum atributo (coluna) de Tag na consulta, gera-se uma query com erro, pois o model Tag não é definido durante a query.

O tipo de erro retornado é: "Campo Tag.field não definido";

Olhando a query gerada, não há nenhum join/select em cima da query (ao menos não em uma das queries).

Isso inviabiliza o uso de condições sobre o model Tag e da definição dos campos do model Tag que devem ser retornados.

Este comportamento é uma feature ou limitação do plugin?

@jrbasso
Copy link
Owner

jrbasso commented May 17, 2010

Não era pra ser nenhum dos dois, parece ser um bug. Tens como mostrar o model Post e como você está fazendo a consulta?

@CauanCabral
Copy link
Author

Agora não estou com o código, e no meu caso, o nome das classes são outros (embora a estrutura/cenário é exatamente o mesmo), mas é algo simples:

Tabela Tags: id, post_id, name
Tabela Posts: id, author_id, category_id, content...

No controller Posts faço uma busca:

//quero selecionar apenas as tags do post 123
$posts = $this->Post->superFind('first', array('conditions' => array('Post.id' => 123), 'fields' => array('Tag.id', 'Tag.name'));

A consulta retorna um erro dizendo que o campo Tag.id e Tag.name não foram definidos. E na SQL citada no erro, realmente não há o model Tag na cláusula FROM ou JOIN. Já os models com associação "Post belongsTo" aparecem na cláusula (Author e Category).

Quando eu removo o 'fields' dos parâmetros, a busca ocorre normal e é retornado os elementos Tag associados com Post

Não sei se deu para entender, hoje a noite te passo exatamente a mensagem de erro e o código usado.

@jrbasso
Copy link
Owner

jrbasso commented May 17, 2010

Hmmm, neste caso realmente vai acontecer o erro devido a limitação do plugin. Até o momento ele suporta apenas campos nos conditions. Ainda não cheguei a implementar nos fields.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants