0

車を販売するアプリをコーディングしているので、Carmodel が 1 つ、CarModel に CarMake が 1 つある Anuncio (車を示す部分、ポルトガル語で翻訳がわからない) というモデルがあります。

anuncio コントローラーでは、すべての Make をロードしてコンボボックスに入力したいので、それを使用しています。

$makes = $this->Anuncio->Carmodel->CarMake->find('list');

適切に機能していますが、その検索はすべてのメーカーをもたらしています。少なくとも 1 つの Carmodel が記録されているメーカーのみを持ち込みたいです (LEFT JOIN ではなく INNER JOIN のようなもの)。

ありがとう

4

1 に答える 1

0

こんにちは、コードを提供していないので、正確な回答はできませんが、それを行う方法を書きます。

モデルの list メソッドと特にlist アクションをオーバーライドする必要があります

class Carmodel extends AppModel {
var $belongsTo = array('User');

function find($type, $queryData = array()) {
switch ($type) {
  case 'list':
    //do the query that joins tables in way you want
  default:
    return parent::find($type, $queryData);
 }

} }

詳細については、http://debuggable.com/posts/implementing-different-types-for-cakes-modelfind-method:485030de-4778-456e-8400-44d84834cda3を参照してください。

お役に立てば幸いです。このメソッドで独自の $type を作成できます。リストアクションをオーバーライドする必要はありませんが、独自の $type を作成するか、Carmodelで新しいメソッドを作成するだけです。

于 2013-05-25T06:47:24.737 に答える