Я определил эту сущность в schema.yml
Jobsearch:
tableName: jobsearch
columns:
seeker_id:
primary: true
type: integer
notnull: true
autoincrement: false
empmode:
type: string(50)
pensum:
type: integer
active:
type: boolean
relations:
Privateaccount:
local: seeker_id
foreign: id
alias: seeker
имеет внешнюю ссылку на
Privateaccount:
tableName: privateaccount
columns:
id:
primary: true
unique: true
type: integer
notnull: true
autoincrement: true
firstname:
type: string(255)
lastname:
type: string(255)
inheritance:
extends: sfGuardUser
type: column_aggregation
keyField: type
keyValue: Privateaccount
Я выполнил действие symfony для тестирования, он должен сохранить Jobsearch в db:
public function executeTest(sfWebRequest $request)
{
$test = new Jobsearch();
$test->setSeeker( $this->getUser()->getGuardUser() ) ; // set the user that is logged in
$test->save();
}
$test->save()
приводит к этой ошибке:
SQLSTATE [23000]: нарушение ограничения целостности: 1451 Невозможно удалить или
обновить родительскую строку: ограничение внешнего ключа не выполнено
(test2
. sf_guard_user_profile
, ОГРАНИЧЕНИЕ
sf_guard_user_profile_user_id_sf_guard_user_id
ИНОСТРАННЫЙ КЛЮЧ
(user_id
) ССЫЛКИ sf_guard_user
(id
) НА УДАЛЕННОМ КАСКАДЕ)
Я не понимаю, почему ограничение внешнего ключа не выполняется.
Что вызвало ошибку?
РЕДАКТИРОВАТЬ: Если я изменить primary
на false
в seeker_id
, это работает. Но я хочу, чтобы внешний ключ был первичным ключом. Если возможно, как мне заставить это работать?