Skip to content

Date Object not formatted correctly with innerJoinWith #17998

@yosus

Description

@yosus

Description

Association : Workers hasOne WorkerWorkingInfos

$query = $this->Workers->find()
    ->select(['Workers.id', 'WorkerWorkingInfos.permit_expiry_date'])
    ->contain(['WorkerWorkingInfos']);

$checkDate = Date::createFromFormat('Y-m', '2024-12')->endOfMonth();
$query->innerJoinWith( 'WorkerWorkingInfos', function ($q) use ($checkDate) {
    return $q->where([ 'WorkerWorkingInfos.permit_expiry_date  <= ' => $checkDate,	]);
});
$query->where(['Workers.passport_expiry_date <= ' => $checkDate]);

This outputs an sql-error

SELECT Workers.id AS Workers__id, WorkerWorkingInfos.permit_expiry_date AS WorkerWorkingInfos__permit_expiry_date FROM workers Workers INNER JOIN worker_working_infos WorkerWorkingInfos ON (WorkerWorkingInfos.permit_expiry_date <= '12/31/24' AND Workers.id = WorkerWorkingInfos.worker_id) WHERE Workers.passport_expiry_date <= '2024-12-31'

Error at WorkerWorkingInfos.permit_expiry_date <= '12/31/24'
I expected it to be formatted like WorkerWorkingInfos.permit_expiry_date <= '2024-12-31'

CakePHP Version

5.1

PHP Version

8.1

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions