/ / cakephp como encontrar pertence ao id - cakephp, orm, find

cakephp como encontrar pertence a id - cakephp, orm, find

Existe uma maneira no cakephp usando ORM para obter o item que pertence a um item filho específico. Por exemplo, eu deveria obter o registro de postagem relacionado para um registro de comentário específico.

Este é o meu modelo de comentário:

var $belongsTo = array(
"Post" => array(
"className" => "Post",
"foreignKey" => "post_id",
"conditions" => "",
"fields" => "",
"order" => ""
)
);

Eu estava tentando isso, mas ele é retirado de todos os posts, mesmo aqueles que não têm o comentário que estou consultando:

$this->Post->contain("Comment");
$results = $this->Post->find("all", array(
"contain" => array(
"Comment" => array(
"conditions" => array(
"id" => 15
)
)
)));

Alguma outra maneira de fazer isso?

Respostas:

0 para resposta № 1

Tem certeza de que não precisa especificar o modelo em suas condições?

Por exemplo:

$this->Post->contain("Comment");
$results = $this->Post->find("all", array(
"contain" => array(
"Comment" => array(
"conditions" => array(
"Comment.id" => 15
)
)
)));

0 para resposta № 2

minha pesquisa me levou a este post sobre o problema com: http://nuts-and-bolts-of-cakephp.com/2008/07/17/forcing-an-sql-join-in-cakephp/

então minha solução final foi a seguinte:

    $this->Post->unbindModel(array("hasMany" => array("Comment")));

$results = $this->Post->bindModel(array("hasOne" => array(
"Comment" => array(
"foreignKey" => false,
"conditions" => array("Comment.post_id = Post.id"))
)));

$results = $this->Post->find("all", array(
"conditions" => array(
"Comment.id" => 10
)));

não é bonito, mas faz o trabalho :)