Я хочу получить количество строк в определенной таблице, учитывая период времени.
Я использую CakePHP 3.7.
Здесь вы можете увидеть мой код (из класса контроллера):
public function nbOfDefense($dateIn, $dateOut){
if($dateIn!=null && $dateFin!=null){
$conditions = array('thesis.date_end BETWEEN ? and ?' => array($dateIn, $dateOut));
$query = $this->Thesis->find('all',
array('conditions'=>$conditions));
die(strval($query->count()));
return $query;
}else{
$query = $this->Thesis->find('all');
die(strval($query->count()));
return $query->count();
}
}
Я проверяю свою функцию через браузер, используя этот URL:
http://localhost:8888/thesis/nbOfDefense/2003-02-01/2019-04-13
Я хочу, чтобы моя функция получала в параметрах две даты:
Если эти две даты не равны нулю, вы получите количество строк, которыемежду двумя датами с учетом даты, хранящейся в таблице, с которой вы консультируетесь.
Если даты равны нулю, вы получите общее количество строк таблицы.
И вернуть целое число, представляющее собой число строк между этими двумя датами.
Я чувствую, что проблема в том, как я справляюсь со своим состоянием, потому что подсчет общего количества строк работает отлично (остальная часть кода).
У меня сейчас ошибка с этим кодом:
Невозможно преобразовать значение типа array
в строку
оно указывает на эту строку:
die(strval($query->count()));
Полагаю, функция count возвращает массив (странно, потому что этого не происходит, когда я считаю все строки без условий).Я также попробовал это:
die(strval(sizeof($query->count())));
Но я получаю ту же ошибку, что и раньше (не могу преобразовать массив в строку)
Я должен что-то упустить, но я не знаю, что ...