1

私はこのような配列を持っています

$conditions = array("Post.title" => "This is a post");

そして、このメソッドで$conditions配列を使用します。

$this->Post->find('first', array('conditions' => $conditions));

$conditions 配列を通常の SQL クエリに変換したい。使いたい

$this->Post->query($converted_query);

それ以外の

$this->Post->find('first', array('conditions' => $conditions));
4

2 に答える 2

1
 $null=null;
 echo  $this->getDataSource()->generateAssociationQuery($this, NULL, NULL, NULL, NULL, $query_array, false,$null);
于 2012-08-27T08:47:38.977 に答える
0

あなたが望むことをするためにあなたは2つのことをすることができます:

1)配列を組み合わせて$conditions 、CakePHPに新しいクエリを作成させて、簡単に再利用できるようにします$this->Model->find()

2)これを使用します。$this->Model->find('sql', array('conditions' => $conditions))これは、SQLクエリを返すオプションを追加するmysqlデータソースの拡張です。一部のfind呼び出しでは(特に関連モデルをフェッチする場合)、CakePHPは複数のクエリを使用して関連モデルをフェッチするため(特にhasMany-associationsの場合)、このオプションは問題を引き起こす可能性があります。

可能であれば、オプション1で問題が最も少なくなる可能性があります。2を使用する場合の別の問題は、条件が競合する2つのクエリ(クエリ1の「name=Hansel」とクエリ2の「name=Gretel」など)を組み合わせようとすると、書く予定がない限り何も見つからないことです。結果のクエリを解析し、競合を探すための追加のコード。1を使用すると、おそらくはるかに簡単になり、多くの問題を回避できる可能性があります。

于 2012-08-25T08:29:55.763 に答える