Estou com um probleminha a algum tempo referente a um projeto que estou desenvolvendo em cakephp, minha view não consegue ler um select com inner join da tabela.
Controller:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public functioninitialize()
{
$posts = $this->Posts->find("all",array(
"joins"=> array(
array(
"table"=> "users",
"alias"=> "User",
"type"=> "INNER",
"conditions"=> array("Post.user_id = User.id "),
"fields"=> array('Post.*', 'User.username')
)
)
)
);
Model:
1
2
3
4
5
public functioninitialize(array $config) {
$this->addBehavior('Timestamp');
$this->displayField('title');
$this->belongsTo('User'); //belongsTo que é a associação que estou fazendo entre o cake e o join;
}
View:
1
<?= $post->username ?>
Dessa forma, na minha view, me retorna NULL, se eu fizer a view:
1
<?= $post->user->username ?>
retorna um erro que não encontra o obejto "user".
Explicando melhor, meu código sql esta assim:
1
2
3
SELECT posts.*, users.username
FROM posts
inner join users on (posts.user_id = users.id )
essa consulta está buscando o "username" da tabela A para a tabela B, sendo que essa tabela B minha view consegue fazer a leitura normalmente. Com esse select meu banco traz a consulta exatamente que eu preciso, mas minha view não mostra o resultado e retorna nulo.
Pergunta
lucasleonarczyk
Estou com um probleminha a algum tempo referente a um projeto que estou desenvolvendo em cakephp, minha view não consegue ler um select com inner join da tabela.
Controller:
public
function
initialize()
{
$posts = $
this
->Posts->find(
"all"
,array(
"joins"
=> array(
array(
"table"
=>
"users"
,
"alias"
=>
"User"
,
"type"
=>
"INNER"
,
"conditions"
=> array(
"Post.user_id = User.id "
),
"fields"
=> array(
'Post.*'
,
'User.username'
)
)
)
)
);
Model:
public
function
initialize(array $config) {
$
this
->addBehavior(
'Timestamp'
);
$
this
->displayField(
'title'
);
$
this
->belongsTo(
'User'
);
//belongsTo que é a associação que estou fazendo entre o cake e o join;
}
View:
<?= $post->username ?>
Dessa forma, na minha view, me retorna NULL, se eu fizer a view:
<?= $post->user->username ?>
retorna um erro que não encontra o obejto "user".
Explicando melhor, meu código sql esta assim:
SELECT posts.*, users.username
FROM posts
inner join users on (posts.user_id = users.id )
essa consulta está buscando o "username" da tabela A para a tabela B, sendo que essa tabela B minha view consegue fazer a leitura normalmente. Com esse select meu banco traz a consulta exatamente que eu preciso, mas minha view não mostra o resultado e retorna nulo.
Se alguém puder me dar um dica, Obrigado.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.