Две модели, о которых идет речь, - это проекты и события.Отношения в CakePHP
Ниже приведены соотношения:
var $belongsTo = array(
'Project' => array(
'className' => 'Project',
'foreignKey' => 'project_id'
),
var $hasMany = array(
'Event' => array(
'className' => 'Event',
'foreignKey' => false,
'dependent' => false,
),
Проблема заключается в том, что всякий раз, когда я пытаюсь перечислить все проект, только те, которые имеют событие, присоединенное перечислены. Я с нетерпением жду, чтобы это было решено.
Вот запрос, который я получаю:
ВЫБРАТЬ
Event
.id
,Event
.project_id
,Event
.user_id
,Event
.date
,Event
.hours
,Event
.minutes
,Event
.xhours
,Event
.xminutes
,Event
.xdetails
,Event
.assignment
,Event
.start_time
,Project
.id
,Project
.name
,Project
.customer_id
,Project
.project_nr
,Project
.address
,Project
.post_nr
,Project
.city
,Project
.company_id
,User
.id
,User
.employee_nr
,User
.name
,User
.surname
,User
.User
.password
,User
.role
,User
.phone
,User
.address
,User
.post_nr
,User
.city
,User
.token_hash
,User
.company_id
ОТscheduling
.events
ASEvent
LEFT JOINscheduling
.projects
ASProject
ON (Event
.project_id
=Project
.id
) LEFT JOINscheduling
.users
ASUser
о том, где 1 = 1 LIMIT 15
запрос, который я получаю после последнего обновления является следующее (Event
user_id
= User
id
..):
ВЫБРАТЬ
Event
.id
,Event
.project_id
,Event
.user_id
,Event
.date
,Event
.hours
,Event
.minutes
,Event
.xhours
,Event
.xminutes
,Event
.xdetails
,Event
.assignment
,Event
.start_time
,Event
.material_id
,Event
.km_drive
,Event
.time_drive
,Event
.finish_time
,Project
.id
,Project
.name
,Project
.customer_id
,Project
.project_nr
,Project
.address
,Project
.post_nr
,Project
.city
,Project
.company_id
,Project
.color
,User
.id
,User
.employee_nr
,User
.name
,User
.surname
,User
.User
.password
,User
.role
,User
.phone
,User
.address
,User
.post_nr
,User
.city
,User
.token_hash
,User
.company_id
,User
.car_id
ОТscheduling
.events
ASEvent
LEFT JOINscheduling
.projects
ASProject
ON (Event
.project_id
=Project
.id
) LEFT JOINscheduling
.users
ASUser
о том, где 1 = 1 LIMIT 20
Вот массив, который я получаю при попытке к списку проектов (Event
user_id
= User
id
..):
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',
),
),
пожалуйста, добавьте свой запрос здесь, который вы использовали для извлечения проектов –
Просьба предоставить вам запрос и сказать, что эти отношения есть в какой модели? –
отношение brlongsTo находится в модели событий, а hasMany - в модели проекта. Я добавил вопрос к вопросу. – Domas