0

問題の 2 つのモデルは、プロジェクトとイベントです。

関係は次のとおりです。

var $belongsTo = array(
    'Project' => array(
        'className' => 'Project',
        'foreignKey' => 'project_id'

    ),

var $hasMany = array(
    'Event' => array(
        'className' => 'Event',
        'foreignKey' => false,
        'dependent' => false,

    ),

問題は、すべてのプロジェクトを一覧表示しようとすると、イベントが関連付けられているものだけが一覧表示されることです。これが解決されることを楽しみにしています。

これが私が得るクエリです:

選択しEventます。idEventproject_idEventuser_idEventdateEventhoursEventminutesEventxhoursEventxminutesEventxdetailsEventassignmentEventstart_timeProjectidProjectnameProjectcustomer_idProjectproject_nrProjectaddressProjectpost_nrProjectcityProjectcompany_idUseridUseremployee_nrUsernameUsersurnameUseremailUserpasswordUserroleUserphoneUseraddressUserpost_nrUsercityUsertoken_hashUsercompany_idからschedulingeventsAS EventLEFT JOIN scheduling. projectsAS ProjectON ( Event. project_id= Project. id) LEFT JOIN scheduling. usersAS UserON ( Event. user_id= User. id) WHERE 1 = 1 LIMIT 15

最後の更新後に取得するクエリは次のとおりです。

選択しEventます。idEventproject_idEventuser_idEventdateEventhoursEventminutesEventxhoursEventxminutesEventxdetailsEventassignmentEventstart_timeEventmaterial_idEventkm_driveEventtime_driveEventfinish_timeProjectidProjectnameProjectcustomer_idProjectproject_nrProjectaddressProjectpost_nrProjectcityProjectcompany_idProjectcolorUseridUseremployee_nrUsernameUsersurnameUseremailUserpasswordUserroleUserphoneUseraddressUserpost_nrUsercityUsertoken_hashUsercompany_idUsercar_idからschedulingeventsAS EventLEFT JOIN scheduling. projectsAS ProjectON ( Event. project_id= Project. id) LEFT JOIN scheduling. usersAS UserON ( Event. user_id= User. id) WHERE 1 = 1 LIMIT 20

プロジェクトをリストしようとしたときに取得する配列は次のとおりです。

array(
(int) 0 => array(
    'Event' => array(
        'id' => '57',
        'project_id' => '13',
        'user_id' => '1',
        'date' => '2013-08-07',
        'hours' => '2',
        'minutes' => '35',
        'start_time' => '00:00:00',

    ),
    'Project' => array(
        'id' => '13',
        'name' => 'new project',
        'customer_id' => '2',
        'project_nr' => '215',
        'company_id' => '1',
    ),
    'User' => array(
        'password' => '*****',
        'id' => '1',
        'employee_nr' => null,
        'role' => 'manager',
        'phone' => '11 12 13 14',
        'token_hash' => null,
        'company_id' => '1',
        'car_id' => null
    )
),
(int) 1 => array(
    'Event' => array(
        'id' => '72',
            'project_id' => '13',
        'user_id' => '1',
        'date' => '2013-08-08',
        'hours' => '5',
        'minutes' => '35',
        'start_time' => '00:00:00',
    ),
    'Project' => array(
                    'id' => '13',
        'name' => 'new project',
        'customer_id' => '2',
        'project_nr' => '215',
        'company_id' => '1',

    ),
    'User' => array(
        'password' => '*****',
        'id' => '1',
        'employee_nr' => null,
        'role' => 'manager',
        'phone' => '11 12 13 14',
        'token_hash' => null,
        'company_id' => '1',
        'car_id' => null
    )
),

したがって、基本的に、関連するプロジェクトを含むイベントのリストと、関連する顧客を含まないイベントのリストを取得します。私が取得したいのは、次のような配列です。

(int) 1 => array(
    'Project' => array(
                    'id' => '13',
        'name' => 'old project',
        'customer_id' => '2',
        'project_nr' => '215',
    ),
            'Customer' => array(
        'id' => '2',
            'project_id' => '13',
        'address' => 'abc',
        'initials' => 'HUJ',
    ),
),
4

1 に答える 1