#php #symfony-1.4 #doctrine-1.2
#php #symfony-1.4 #доктрина-1.2
Вопрос:
я изучаю Symfony и Doctrine с помощью Jobeet. Я хотел бы добавить несколько изменений. по умолчанию:http://www.symfony-project.org/jobeet/1_4/Doctrine/en/03
JobeetCategory:
actAs: { Timestampable: ~ }
columns:
name: { type: string(255), notnull: true, unique: true }
JobeetJob:
actAs: { Timestampable: ~ }
columns:
category_id: { type: integer, notnull: true }
(...)
relations:
JobeetCategory: { onDelete: CASCADE, local: category_id, foreign: id, foreignAlias: JobeetJobs }
и если я перейду к форме (создам новую), у меня будет:
http://www.symfony-project.org/images/jobeet/1_4/03/job.png
Идентификатор категории — список выбора
//BaseJobeetJobForm.class.php :
'category_id' => new sfWidgetFormDoctrineChoice(array('model' => $this->getRelatedModelName('JobeetCategory'), 'add_empty' => false)),
//sfFormDoctrine.class.php :
protected function getRelatedModelName($alias)
{
$table = Doctrine_Core::getTable($this->getModelName());
if (!$table->hasRelation($alias))
{
throw new InvalidArgumentException(sprintf('The "%s" model has to "%s" relation.', $this->getModelName(), $alias));
}
$relation = $table->getRelation($alias);
return $relation['class'];
}
как я могу сделать что-то вроде:
JobeetCategory:
actAs: { Timestampable: ~ }
columns:
name: { type: string(255), notnull: true, unique: true }
nametwo: { type: string(255), notnull: true, unique: true }
JobeetJob:
actAs: { Timestampable: ~ }
columns:
category_id: { type: integer, notnull: true }
nametwo_id: { type: integer, notnull: true }
(...)
relations:
JobeetCategory: { onDelete: CASCADE, local: category_id, foreign: id, foreignAlias: JobeetJobs }
JobeetCategory: { onDelete: CASCADE, local: nametwo_id, foreign: id, foreignAlias: JobeetJobsTwo }
как я могу отобразить в форме «nametwo»? я приведу два варианта списка (category_id (уже) и nametwo_id : )
Ответ №1:
Вы хотите настроить два разных отношения между jobeetjob и jobeetcategory.
Вы должны четко назвать отношение, вот так :
JobeetJob:
actAs: { Timestampable: ~ }
columns:
category_id: { type: integer, notnull: true }
nametwo_id: { type: integer, notnull: true } (...)
relations:
JobeetCategoryOne:
class: JobeetCategory
onDelete: CASCADE
local: category_id
foreign: id
foreignAlias: JobeetJobs
JobeetCategoryTwo:
class: JobeetCategory
onDelete: CASCADE
local: nametwo_id, foreign: id,
foreignAlias: JobeetJobsTwo
Комментарии:
1. dxb: Я отредактировал ваш ответ и исправил подсветку синтаксиса. В примерах кода все строки должны быть дополнены четырьмя пробелами, чтобы SO выделил это. Должным образом исправлено.