本文整理汇总了PHP中Relationship::fromArray方法的典型用法代码示例。如果您正苦于以下问题:PHP Relationship::fromArray方法的具体用法?PHP Relationship::fromArray怎么用?PHP Relationship::fromArray使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Relationship
的用法示例。
在下文中一共展示了Relationship::fromArray方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: executeToolbar
public function executeToolbar($request)
{
$this->checkToolbarCredentials(true);
if ($request->isMethod('post')) {
//if user wants to skip this relationship
if ($request->getParameter('commit') == 'Skip') {
$names = $this->getUser()->getAttribute('toolbar_names');
array_shift($names);
if (count($names)) {
$this->getUser()->setAttribute('toolbar_names', $names);
$this->redirect('relationship/toolbar');
} else {
$entityId = $this->getUser()->getAttribute('toolbar_entity');
$entity = Doctrine::getTable('Entity')->find($entityId);
$this->getUser()->setAttribute('toolbar_names', null);
$this->getUser()->setAttribute('toolbar_ref', null);
$this->getUser()->setAttribute('toolbar_entity', null);
$this->getUser()->setAttribute('toolbar_defaults', null);
$this->redirect($entity->getInternalUrl());
}
}
//if user wants to clear bulk queue
if ($request->getParameter('commit') == 'Clear') {
$entityId = $this->getUser()->getAttribute('toolbar_entity');
$entity = Doctrine::getTable('Entity')->find($entityId);
$this->getUser()->setAttribute('toolbar_names', null);
$this->getUser()->setAttribute('toolbar_ref', null);
$this->getUser()->setAttribute('toolbar_entity', null);
$this->getUser()->setAttribute('toolbar_defaults', null);
$this->redirect($entity->getInternalUrl());
}
$entity1Id = $request->getParameter('entity1_id');
$entity2Id = $request->getParameter('entity2_id');
$categoryName = $request->getParameter('category_name');
$refSource = $request->getParameter('reference_source');
$refName = $request->getParameter('reference_name');
$categoryParams = $request->getParameter('relationship');
$startDate = $categoryParams['start_date'];
$endDate = $categoryParams['end_date'];
unset($categoryParams['start_date'], $categoryParams['end_date']);
if (!$entity1Id || !$entity2Id || !$categoryName || !$refSource || !$refName) {
$this->forward('error', 'invalid');
}
if (!($entity1 = EntityApi::get($entity1Id))) {
$this->forward('error', 'invalid');
}
if (!($entity2 = EntityApi::get($entity2Id))) {
$this->forward('error', 'invalid');
}
$db = Doctrine_Manager::connection();
$sql = 'SELECT name FROM relationship_category ' . 'WHERE (entity1_requirements IS NULL OR entity1_requirements = ?) ' . 'AND (entity2_requirements IS NULL OR entity2_requirements = ?)';
$stmt = $db->execute($sql, array($entity1['primary_ext'], $entity2['primary_ext']));
$validCategoryNames = $stmt->fetchAll(PDO::FETCH_COLUMN);
if (!in_array($categoryName, $validCategoryNames)) {
$request->setError('category', 'Invalid relationship; try changing the category or switching the entity order');
//check session for bulk names
if ($bulkEntityId = $this->getUser()->getAttribute('toolbar_entity')) {
if ($this->entity1 = Doctrine::getTable('Entity')->find($bulkEntityId)) {
if ($names = $this->getUser()->getAttribute('toolbar_names')) {
$this->entity2_name = array_shift($names);
if ($refId = $this->getUser()->getAttribute('toolbar_ref')) {
$this->ref = Doctrine::getTable('Reference')->find($refId);
$request->getParameterHolder()->set('title', $this->ref->name);
$request->getParameterHolder()->set('url', $this->ref->source);
}
if ($defaults = $this->getUser()->getAttribute('toolbar_defaults')) {
if (isset($defaults['category'])) {
$this->category = $defaults['category'];
}
}
}
}
}
if ($createdId = $request->getParameter('created_id')) {
$this->created_rel = Doctrine::getTable('Relationship')->find($createdId);
}
return sfView::SUCCESS;
}
if (!preg_match('/^http(s?)\\:\\/\\/.{3,193}/i', $refSource)) {
$this->forward('error', 'invalid');
}
//all's well, create relationship!
$rel = new Relationship();
$rel->setCategory($categoryName);
$rel->entity1_id = $entity1['id'];
$rel->entity2_id = $entity2['id'];
//only set dates if valid
if ($startDate && preg_match('#^\\d{4}-\\d{2}-\\d{2}$#', Dateable::convertForDb($startDate))) {
$rel->start_date = Dateable::convertForDb($startDate);
}
if ($endDate && preg_match('#^\\d{4}-\\d{2}-\\d{2}$#', Dateable::convertForDb($endDate))) {
$rel->end_date = Dateable::convertForDb($endDate);
}
$rel->fromArray($categoryParams, null, $hydrateCategory = true);
$rel->save();
//create reference
$ref = new Reference();
$ref->name = $refName;
$ref->source = $refSource;
$ref->object_id = $rel->id;
//.........这里部分代码省略.........
示例2: getOldRecord
public function getOldRecord()
{
$old = new Relationship();
if ($name = $this->getCategoryName()) {
$old->setCategory($name);
}
$old->fromArray($this->getOldData(), null, true);
return $old;
}
示例3: executeAddBulk
//.........这里部分代码省略.........
}
} else {
if ($page = $this->getRequestParameter('page')) {
$this->page = $page;
$this->num = $this->getRequestParameter('num', 50);
} else {
if ($request->isMethod('post') && $request->getParameter('commit') == 'Submit') {
$this->ref_id = $this->getRequestParameter('ref_id');
$entity_ids = array();
$relationship_category = $this->getRequestParameter('category_name');
$order = $this->getRequestParameter('order');
$default_type = $request->getParameter('default_type');
$default_ref = Doctrine::getTable('Reference')->find($request->getParameter('ref_id'));
for ($i = 0; $i < $this->getRequestParameter('count'); $i++) {
if ($entity_id = $request->getParameter('entity_' . $i)) {
$selected_entity_id = null;
$relParams = $request->getParameter("relationship_" . $i);
if ($relParams['ref_name']) {
$ref['source'] = $relParams['ref_source'];
$ref['name'] = $relParams['ref_name'];
}
if ($entity_id == 'new') {
$name = $request->getParameter('new_name_' . $i);
if ($default_type == 'Person') {
$new_entity = PersonTable::parseFlatName($name);
} else {
$new_entity = new Entity();
$new_entity->addExtension('Org');
$new_entity->name = trim($name);
}
$new_entity->save();
$new_entity->blurb = $request->getParameter('new_blurb_' . $i);
$new_entity->summary = $request->getParameter('new_summary_' . $i);
if (!$ref) {
$ref = $default_ref;
}
$new_entity->addReference($ref['source'], null, null, $ref['name']);
if ($types = $request->getParameter('new_extensions_' . $i)) {
foreach ($types as $type) {
$new_entity->addExtension($type);
}
}
$new_entity->save();
$selected_entity_id = $new_entity->id;
} else {
if ($entity_id > 0) {
$selected_entity_id = $entity_id;
LsCache::clearEntityCacheById($selected_entity_id);
}
}
if ($selected_entity_id) {
$startDate = $relParams['start_date'];
$endDate = $relParams['end_date'];
unset($relParams['start_date'], $relParams['end_date'], $relParams['ref_name'], $relParams['ref_url']);
$rel = new Relationship();
$rel->setCategory($relationship_category);
if ($order == '1') {
$rel->entity1_id = $this->entity['id'];
$rel->entity2_id = $selected_entity_id;
} else {
$rel->entity2_id = $this->entity['id'];
$rel->entity1_id = $selected_entity_id;
}
//only set dates if valid
if ($startDate && preg_match('#^\\d{4}-\\d{2}-\\d{2}$#', Dateable::convertForDb($startDate))) {
$rel->start_date = Dateable::convertForDb($startDate);
}
if ($endDate && preg_match('#^\\d{4}-\\d{2}-\\d{2}$#', Dateable::convertForDb($endDate))) {
$rel->end_date = Dateable::convertForDb($endDate);
}
$rel->fromArray($relParams, null, $hydrateCategory = true);
if ($request->hasParameter('add_method') && $request->getParameter('add_method') == 'db_search') {
$refs = EntityTable::getSummaryReferences($selected_entity_id);
if (count($refs)) {
$ref = $refs[0];
} else {
$refs = EntityTable::getAllReferencesById($selected_entity_id);
if (count($refs)) {
$ref = $refs[0];
}
}
}
if (!$ref) {
$ref = $default_ref;
}
$rel->saveWithRequiredReference(array('source' => $ref['source'], 'name' => $ref['name']));
$ref = null;
}
}
}
$this->clearCache($this->entity);
$this->redirect($this->entity->getInternalUrl());
} else {
if ($request->isMethod('post') && $request->getParameter('commit') == 'Cancel') {
$this->redirect($this->entity->getInternalUrl());
}
}
}
}
}