0

次のような MySQL クエリを CakePHP 2.0 で作成したいと考えています。

select p.ciname HOSTNAME
    ,a.status HPSA
    ,m.status SM9
    ,p.status LDAP 
from hpsas a, hpsms m, ldaps p 
where (p.ciname = a.ciname) 
and (p.ciname = m.ciname) 
order by p.ciname;

これは可能ですか?

4

2 に答える 2

0

Model.query()このメソッドを使用して、CakePHPで任意のSQLクエリを作成できます。たとえば、コントローラでは次のようになります。

$sql = ...your sql here...
$results = $this->ModelName->query($sql);
于 2012-09-21T13:46:12.410 に答える
0

ケーキORMを使用してこのクエリを作成しようとしている場合、これはその方向への一歩になると思います。

$options = array();
$options['fields'] => array('p.ciname AS HOSTNAME', 'a.status AS HPSA', 'm.status AS SM9', 'p.status AS LDAP');
$options['joins'][] => array('table' => 'hpsas', 'alias' => 'a', 'conditions' => array('p.ciname = a.ciname'));
$options['joins'][] => array('table' => 'hpsms', 'alias' => 'm', 'conditions' => array('p.ciname = m.ciname'));

$result = $this->Test->find('all', $options);

これらのフィールドとテーブル名は、プロジェクトを移行または統合する場合に理解できる、ケーキの規則に準拠していません。今から始めている場合は、名前を変更することをお勧めします。

http://book.cakephp.org/1.3/en/view/901/CakePHP-コンベンション

于 2012-09-21T19:57:04.383 に答える