1

私はCakePHPが初めてで、この状況に固執しています:

私はテスト システムを開発しており、次の 3 つのテーブルがあります: カテゴリ、サブカテゴリ、テスト

テストを作成するとき、他のデータと共に を Test テーブルにcategory_id保存subcategory_idします でTestsController、クエリに一致するレコードと行の数を読み取りたい

次のようなクエリを実行したい:

クエリ 1

select count(*) from Test where user_id='$user_id' and category_id=$category_id and subcategory_id=$subcategory_id

クエリ 2

select 
a.test_id,
a.test_name,
a.user_id,
a.test_type,
a.create_date,
a.create_time,
a.category_id,
a.subcategory_id,
a.randomize,
a.test_password
from Test a, Category b, SubCategory c 
where user_id='$user_id' and 
a.category_id=$category_id and
a.subcategory_id=$subcategory_id and
a.category_id=b.category_id and
a.subcategory_id=c.subcategory_id

今、私は $hasMany、$belongsTo などを使用したくありません (実際にはわかりません)。

これらのクエリをコントローラーで実行し、データをビューに渡したいだけです

注: すべての単純なケースで、CakePHP スタイルのコーディングを使用しました

知りたいのですが、クエリ 2を実行した後に行の配列を取得する方法を教えてください。 そのようなクエリを直接実行することは可能ですか (mysql_query など)。

4

1 に答える 1

1

Test Model で関数を作成し、次のようにクエリにアクセスできます。

class TestModel extends Model {
    ..
    public function getQueryData($user_id, $cat_id, $subcat_id) {
       return $this->query("SELECT a.test_id, a.test_name ..... ;");
    }
}

テストコントローラーでは、次のことができます。

$this->loadModel("Test");
$result = $this->Test->getQueryData($user_id, $cat_id, $subcat_id);
于 2013-09-23T04:11:34.230 に答える