加入cakephp中的查询

时间:2016-08-10 15:43:59

标签: php mysql cakephp

您好我是 Cakephp 的新手,我很难在cakephp中转换mysql查询。我有这个查询,我想将其转换为Cakephp语法

SELECT * 
FROM trip
JOIN countries ON trip.departure_country_id = countries.id
WHERE countries.country_name LIKE  "eng%"

这是我到目前为止所尝试的

class Trip extends AppModel
{
    public $useTable = 'trip';
    public $primaryKey = 'trip_id';

    public $belongsTo = array(
        'User' => array(
            'className' => 'User',
            'foreignKey' => 'user_id',
            'fields' => array('User.user_id','User.first_name','User.last_name','User.profile_image','User.country','User.phone_no')

        ),
        'departure_country' => array(
            'className' => 'Country',
            'foreignKey' => 'departure_country_id',
        ),
        'arrival_country' => array(
            'className' => 'Country',
            'foreignKey' => 'arrival_country_id',
        )
    );

    public function getLocationBasedTrips($country){
        return  $this->find('all', array(
            'conditions' => array(
                'OR' => array('Country.country_name Like' => '%'.$country.'%')
            ),
        ));
    }
}

2 个答案:

答案 0 :(得分:1)

旅行模式:

$this->find('all',
    array(
        'joins' => array(
            array(
                'table' => 'countries',
                'alias' => 'Country',
                'type' => 'INNER',
                'conditions' => array(
                    'Trip.departure_country_id = Country.id'
                )
          ),
          'conditions' => array(
               'Country.country_name Like' => "%$country%"
          )
      )
 );

答案 1 :(得分:0)

从上一个答案移开了一些括号。试试这个:

 $this->find('all', array(
            'joins' => array(
                array(
                    'table' => 'countries',
                    'alias' => 'Country',
                    'conditions' => array(
                        'Trip.departure_country_id = Country.id'
                    )
                )
            ),
                'conditions' => array(
                    'Country.country_name LIKE' => "%$country%"
                )
            )
        );