Procurando respostas para o problema descrito na mensagem:
http://groups.google.com/group/cake-php-pt/browse_thread/thread/f192caea87ecee60
Tentando recuperar campos especificos em mais de 1 modelo
utilizando findAll() em um relacionamento "HasMany".
Detalhes:
Um modelo nomeado como Tag e outro como Post.
Tag possui mais de 1 Post.
Post pertence a Tag.
Arquivos:
## models/post.php
class Post extends AppModel {
var $belongsTo = array('Tag');
}
---
## models/tag.php
class Tag extends AppModel {
var $hasMany = array('Post');
}
---
## controllers/posts_controller.php
class PostsController extends AppController {
var $scaffold;
}
---
## controllers/tags_controller.php
class TagsController extends AppController {
var $scaffold;
function teste() {
$fields = array('Tag.id', 'Post.id');
$retorno = $this->Tag->findAll(null, $fields);
pr($retorno);
exit();
}
}
**RETORNA:**
Query: SELECT `Tag`.`id`, `Post`.`id` FROM `tags` AS `Tag` WHERE 1 = 1
Warning: SQL Error: 1054: Unknown column 'Post.id' in 'field list' in
#############################################
** Retornado com sucesso **
Agora usando o metodo findAll no controller Posts.
Executa perfeitamente retornando apenas os campos dos modelos que
foram passados pelo parametro. No caso o campo 'id' do modelo Post e
o campo 'id' do Modelo Tag.
## controllers/posts_controller.php
class PostsController extends AppController {
var $scaffold;
function teste() {
$fields = array('Post.id', 'Tag.id');
$retorno = $this->Post->findAll(null, $fields);
pr($retorno);
exit();
}
}
#############################################
Tentando recuperar campos especificos em mais de 1 modelo
utilizando findAll() em um relacionamento "hasAndBelongsToMany".
## models/post.php:
class Post extends AppModel {
var $hasAndBelongsToMany = array('Tag');
}
## models/tag.php
class Tag extends AppModel {
var $hasAndBelongsToMany = array('Post');
}
## controllers/posts_controller.php
class PostsController extends AppController {
var $scaffold;
}
## controllers/tags_controller.php
class TagsController extends AppController {
var $scaffold;
function teste() {
$fields = array('Tag.id', 'Post.id');
$retorno = $this->Tag->findAll(null, $fields);
pr($retorno);
exit();
}
}
**RETORNA:**
Warning: SQL Error: 1054: Unknown column 'Post.id' in 'field list'
in...
###############################################
Nos testes acima, apenas consegui o resultado desejado quando utilizei
o metodo findAll()
no modelo definido como "belongsTo".
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---