Что эквивалентно $ this-> db-> last_query () в Codeigniter 4? - PullRequest
0 голосов
/ 31 января 2020

Я только начал изучать Codeigniter 4. Мой запрос всегда генерирует NULL, и я не знаю почему. Как увидеть сгенерированную команду SQL Select точно так же, как Codeigniter 3?

В Codeigniter 3 эта команда выполняет свою работу:

echo $this->db->last_query();

И это мой код контроллера в Codeigniter 4, который Мне нужно получить сгенерированный запрос:

$cityModel = new CityModel();
$cities = $cityModel
    ->select('city.name AS cityName')
    ->select('county.name AS countryName')
    ->select('province.name AS provinceName')
    ->join('province', 'city.province_id = province.id', 'left')
    ->join('county', 'city.county_id = county.id', 'left')
    ->result();

Обновление: Я пробовал этот код, но он возвращает пустую строку:

var_export((string)$cityModel->db->getLastQuery());

Ответы [ 3 ]

1 голос
/ 30 апреля 2020

Это должно отобразить окончательный запрос:

$cityModel->getLastQuery()->getQuery()
0 голосов
/ 31 января 2020

Вы можете использовать getCompiledSelect, он вернет команду SELECT запроса.

$sql = $cityModel->getCompiledSelect();
echo $sql;
0 голосов
/ 31 января 2020

В CI 4 См. Do c

, вы можете использовать getLastQuery() как

$query = $db->getLastQuery();
echo (string)$query;
...