本文整理汇总了PHP中Doctrine_Collection::save方法的典型用法代码示例。如果您正苦于以下问题:PHP Doctrine_Collection::save方法的具体用法?PHP Doctrine_Collection::save怎么用?PHP Doctrine_Collection::save使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Doctrine_Collection
的用法示例。
在下文中一共展示了Doctrine_Collection::save方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: indexDirectory
public function indexDirectory($dir)
{
if (!file_exists($dir)) {
throw new Doctrine_Search_Indexer_Exception('Unknown directory ' . $dir);
}
$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir), RecursiveIteratorIterator::LEAVES_ONLY);
$files = array();
foreach ($it as $file) {
$name = $file->getPathName();
if (strpos($name, '.svn') === false) {
$files[] = $name;
}
}
$q = new Doctrine_Query();
$q->delete()->from('Doctrine_File f')->where('f.url LIKE ?', array($dir . '%'))->execute();
// clear the index
$q = new Doctrine_Query();
$q->delete()->from('Doctrine_File_Index i')->where('i.file_id = ?')->execute();
$conn = Doctrine_Manager::connection();
$coll = new Doctrine_Collection('Doctrine_File');
foreach ($files as $file) {
$coll[]->url = $file;
}
$coll->save();
}
示例2: executeImportSentences
public function executeImportSentences(dmWebRequest $request)
{
$catalogue = $this->getObjectOrForward404($request);
$form = new DmCatalogueImportForm();
sfContext::getInstance()->getConfiguration()->loadHelpers(array('Url'));
if ($request->isMethod('post') && $form->bindAndValid($request)) {
$file = $form->getValue('file');
$override = $form->getValue('override');
$dataFile = $file->getTempName();
$table = dmDb::table('DmTransUnit');
$existQuery = $table->createQuery('t')->select('t.id, t.source, t.target, t.created_at, t.updated_at')->where('t.dm_catalogue_id = ? AND t.source = ?');
$catalogueId = $catalogue->get('id');
$nbAdded = 0;
$nbUpdated = 0;
try {
if (!is_array($data = sfYaml::load(file_get_contents($dataFile)))) {
$this->getUser()->logError($this->getI18n()->__('Could not load file: %file%', array('%file%' => $file->getOriginalName())));
return $this->renderPartial('dmInterface/flash');
}
} catch (Exception $e) {
$this->getUser()->logError($this->getI18n()->__('Unable to parse file: %file%', array('%file%' => $file->getOriginalName())));
return $this->renderPartial('dmInterface/flash');
}
$addedTranslations = new Doctrine_Collection($table);
$line = 0;
foreach ($data as $source => $target) {
++$line;
if (!is_string($source) || !is_string($target)) {
$this->getUser()->logError($this->getI18n()->__('Error line %line%: %file%', array('%line%' => $line, '%file%' => $file->getOriginalName())));
return $this->renderPartial('dmInterface/flash');
} else {
$existing = $existQuery->fetchOneArray(array($catalogueId, $source));
if (!empty($existing) && $existing['source'] === $source) {
if ($existing['target'] !== $target) {
if ($override || $existing['created_at'] === $existing['updated_at']) {
$table->createQuery()->update('DmTransUnit')->set('target', '?', array($target))->where('id = ?', $existing['id'])->execute();
++$nbUpdated;
}
}
} elseif (empty($existing)) {
$addedTranslations->add(dmDb::create('DmTransUnit', array('dm_catalogue_id' => $catalogue->get('id'), 'source' => $source, 'target' => $target)));
++$nbAdded;
}
}
}
$addedTranslations->save();
if ($nbAdded) {
$this->getUser()->logInfo($this->getI18n()->__('%catalogue%: added %count% translation(s)', array('%catalogue%' => $catalogue->get('name'), '%count%' => $nbAdded)));
}
if ($nbUpdated) {
$this->getUser()->logInfo($this->getI18n()->__('%catalogue%: updated %count% translation(s)', array('%catalogue%' => $catalogue->get('name'), '%count%' => $nbUpdated)));
}
if (!$nbAdded && !$nbUpdated) {
$this->getUser()->logInfo($this->getI18n()->__('%catalogue%: nothing to add and update', array('%catalogue%' => $catalogue->get('name'))));
}
return $this->renderText(url_for1($this->getRouteArrayForAction('index')));
}
$action = url_for1($this->getRouteArrayForAction('importSentences', $catalogue));
return $this->renderText($form->render('.dm_form.list.little action="' . $action . '"'));
}
示例3: reload
public function reload($projets, $project_id, $project_ref, Doctrine_Connection $conn = null)
{
if ($conn == null) {
$conn = Doctrine_Manager::connection();
}
//Création de la collection d'objet EiProjectLang à ajouter
$collection = new Doctrine_Collection("EiProjectLang");
$items = $projets->getElementsByTagName("ei_project_langs");
if ($items->length > 0) {
//ya t-il des éléments à traiter?
$ei_project_langs = $items->item(0)->getElementsByTagName("ei_project_lang");
if ($ei_project_langs->length > 0) {
foreach ($ei_project_langs as $ei_project_lang) {
$lang_id = $ei_project_lang->getAttribute("lang");
//recherche du profil en base
if ($lang_id != null && $project_ref != null && $project_id != null) {
$new_ei_project_lang = new EiProjectLang();
$new_ei_project_lang->setLang($lang_id);
$new_ei_project_lang->setProjectId($project_id);
$new_ei_project_lang->setProjectRef($project_ref);
$collection->add($new_ei_project_lang);
}
}
if ($collection->getFirst()) {
$collection->save($conn);
}
//Sauvegarde de la collection
return 1;
}
return null;
}
}
示例4: execute
/**
*
* @param <type> $request
*/
public function execute($request)
{
$this->setForm(new CopyActivityForm());
$projectId = $request->getParameter('projectId');
$this->form->bind($request->getParameter($this->form->getName()));
$projectActivityList = $this->getProjectService()->getActivityListByProjectId($projectId);
if ($this->form->isValid()) {
$activityNameList = $request->getParameter('activityNames', array());
$activities = new Doctrine_Collection('ProjectActivity');
$isUnique = true;
foreach ($activityNameList as $activityName) {
foreach ($projectActivityList as $projectActivity) {
if (strtolower($activityName) == strtolower($projectActivity->getName())) {
$isUnique = false;
break;
}
}
}
if ($isUnique) {
foreach ($activityNameList as $activityName) {
$activity = new ProjectActivity();
$activity->setProjectId($projectId);
$activity->setName($activityName);
$activity->setIsDeleted(ProjectActivity::ACTIVE_PROJECT);
$activities->add($activity);
}
$activities->save();
$this->getUser()->setFlash('templateMessageAct', array('success', __('Successfully Copied')));
} else {
$this->getUser()->setFlash('templateMessageAct', array('failure', __('Name Already Exists')));
}
$this->redirect('admin/saveProject?projectId=' . $projectId);
}
}
示例5: reload
public function reload($projets, $project_id, $project_ref, Doctrine_Connection $conn = null)
{
if ($conn == null) {
$conn = Doctrine_Manager::connection();
}
//Création de la collection d'objet EiVersionNotice à ajouter
$collection = new Doctrine_Collection("EiVersionNotice");
//Supression des versions de notice qui n'existent plus sur script
$this->deleteNotFoundVersionNotice($conn);
$items = $projets->getElementsByTagName("ei_version_notices");
if ($items->length > 0) {
//ya t-il des éléments à traiter?
$ei_version_notices = $items->item(0)->getElementsByTagName("ei_version_notice");
if ($ei_version_notices->length > 0) {
foreach ($ei_version_notices as $ei_version_notice) {
$notice_id = $ei_version_notice->getAttribute("notice_id");
$notice_ref = $ei_version_notice->getAttribute("notice_ref");
$version_notice_id = $ei_version_notice->getAttribute("version_notice_id");
$lang = $ei_version_notice->getAttribute("lang");
//recherche du profil en base
if ($notice_id != null && $notice_ref != null && $version_notice_id != null && $lang != null) {
$q = Doctrine_Core::getTable('EiVersionNotice')->findOneByNoticeIdAndNoticeRefAndVersionNoticeIdAndLang($notice_id, $notice_ref, $version_notice_id, $lang);
if ($q && $q != null) {
//si l'element existe , on fait une mise à jour
$q->setName($ei_version_notice->getElementsByTagName("name")->item(0)->nodeValue);
$q->setDescription($ei_version_notice->getElementsByTagName("description")->item(0)->nodeValue);
$q->setExpected($ei_version_notice->getElementsByTagName("expected")->item(0)->nodeValue);
$q->setResult($ei_version_notice->getElementsByTagName("result")->item(0)->nodeValue);
$q->setIsActive($ei_version_notice->getElementsByTagName("is_active")->item(0)->nodeValue);
$q->save($conn);
} else {
//l'élément n'existe pas encore, et dans ce cas on le crée
$new_ei_version_notice = new EiVersionNotice();
$new_ei_version_notice->setNoticeId($notice_id);
$new_ei_version_notice->setNoticeRef($notice_ref);
$new_ei_version_notice->setVersionNoticeId($version_notice_id);
$new_ei_version_notice->setLang($lang);
$new_ei_version_notice->setDescription($ei_version_notice->getElementsByTagName("description")->item(0)->nodeValue);
$new_ei_version_notice->setExpected($ei_version_notice->getElementsByTagName("expected")->item(0)->nodeValue);
$new_ei_version_notice->setResult($ei_version_notice->getElementsByTagName("result")->item(0)->nodeValue);
$new_ei_version_notice->setName($ei_version_notice->getElementsByTagName("name")->item(0)->nodeValue);
$new_ei_version_notice->setIsActive($ei_version_notice->getElementsByTagName("is_active")->item(0)->nodeValue);
$collection->add($new_ei_version_notice);
}
}
}
if ($collection->getFirst()) {
$collection->save($conn);
}
//Sauvegarde de la collection
return 1;
}
return null;
}
}
示例6: addWikiPages2Categories
/**
* Add a group of wiki pages selected to a category
* @param integer $category_id
* @param array $wikiIDS
* @param integer $locale
*/
public static function addWikiPages2Categories($category_id, $wikiIDS)
{
$records = new Doctrine_Collection('Wikilinks');
self::removeWikiCategoriesPages($category_id);
for ($i = 0; $i < count($wikiIDS); $i++) {
$records[$i]->category_id = $category_id;
$records[$i]->wiki_id = $wikiIDS[$i];
}
$records->save();
return true;
}
示例7: testInit
public function testInit()
{
$user = new BookmarkUser();
$user['name'] = 'Anonymous';
$user->save();
$pages = new Doctrine_Collection('Page');
$pages[0]['name'] = 'Yahoo';
$pages[0]['url'] = 'http://www.yahoo.com';
$pages->save();
$this->assertEqual(count($pages), 1);
}
示例8: executeDissociate
public function executeDissociate(sfWebRequest $request)
{
$this->rfid_groupe = $this->getRoute()->getObject();
$rfids = Doctrine_Core::getTable('Rfid')->findByGroupeId($this->rfid_groupe->getGuid());
$collection = new Doctrine_Collection('Rfid');
foreach ($rfids as $rfid) {
$rfid->setGroupeId(null);
$collection->add($rfid);
}
$collection->save();
$this->redirect('@rfid_groupe');
}
示例9: testMultiplePrimaryKeys
public function testMultiplePrimaryKeys()
{
$r = new Doctrine_Collection('NestReference');
$r[0]->parent_id = 1;
$r[0]->child_id = 2;
$r[1]->parent_id = 2;
$r[1]->child_id = 3;
$r->save();
$r->delete();
$this->conn->clear();
$q = new Doctrine_Query();
$coll = $q->from('NestReference')->execute();
$this->assertEqual(count($coll), 0);
}
示例10: testInitData
public function testInitData()
{
// Since the tests do a $this->objTable()->clear() before each method call
// using the User model is not recommended for this test
$albums = new Doctrine_Collection('Album');
$albums[0]->name = 'Revolution';
$albums[0]->Song[0]->title = 'Revolution';
$albums[0]->Song[1]->title = 'Hey Jude';
$albums[0]->Song[2]->title = 'Across the Universe';
$albums[0]->Song[3]->title = 'Michelle';
$albums->save();
$this->assertEqual(count($albums[0]->Song), 4);
$this->_albums = $albums;
}
示例11: testInitData
public function testInitData()
{
$users = new Doctrine_Collection('User');
$users[0]->name = 'John';
$users[0]->Phonenumber[0]->phonenumber = '123 123';
$users[0]->Phonenumber[1]->phonenumber = '222 222';
$users[0]->Phonenumber[2]->phonenumber = '333 333';
$users[1]->name = 'John';
$users[2]->name = 'James';
$users[2]->Phonenumber[0]->phonenumber = '222 344';
$users[2]->Phonenumber[1]->phonenumber = '222 344';
$users[3]->name = 'James';
$users[3]->Phonenumber[0]->phonenumber = '123 123';
$users->save();
}
示例12: updatePosition
public function updatePosition($ids, $campaign_id)
{
if (!is_array($ids)) {
return null;
}
//On reconstruit les relations de la table graph_has_graph
$newStepTab = array();
$ids = $ids[0];
if (!is_array($ids)) {
return null;
}
foreach ($ids as $i => $item) {
if (array_key_exists($i + 1, $ids)) {
$newStepTab[] = array($ids[$i], $ids[$i + 1]);
}
}
//var_dump($newStepTab);
if (!is_array($newStepTab)) {
return null;
}
$conn = Doctrine_Manager::connection();
try {
$conn->beginTransaction();
/*On vérifie qu'on est pas en accès concurrent */
$nb = count(Doctrine_Core::getTable('EiCampaignGraph')->findByCampaignId($campaign_id));
if ($nb != count($ids)) {
throw new Exception('Concurrent Access. refresh page ...');
}
$conn->delete($this->getInstance(), array('campaign_id' => $campaign_id));
$collection = new Doctrine_Collection($this->getInstance());
foreach ($newStepTab as $item) {
$newItem = new EiCampaignGraphHasGraph();
$newItem->setParentId($item[0]);
$newItem->setChildId($item[1]);
$newItem->setCampaignId($campaign_id);
$collection->add($newItem);
}
$collection->save($conn);
$conn->commit();
// validation globale de la création
return 1;
} catch (Exception $e) {
$conn->rollback();
//throw $e('An error occurred while trying to update nodes positions ');
return -1;
}
}
示例13: reload
public function reload($projets, $project_id, $project_ref, Doctrine_Connection $conn = null)
{
if ($conn == null) {
$conn = Doctrine_Manager::connection();
}
//Création de la collection d'objet View à ajouter
$collection = new Doctrine_Collection("EiView");
$items = $projets->getElementsByTagName("ei_views");
if ($items->length > 0) {
//ya t-il des éléments à traiter?
$ei_views = $items->item(0)->getElementsByTagName("ei_view");
if ($ei_views->length > 0) {
foreach ($ei_views as $ei_view) {
$view_id = $ei_view->getAttribute("view_id");
$view_ref = $ei_view->getAttribute("view_ref");
//recherche du profil en base
if ($view_id != null && $view_ref != null) {
$q = Doctrine_Core::getTable('EiView')->findOneByViewIdAndViewRef($view_id, $view_ref);
if ($q && $q != null) {
//si l'element existe , on fait une mise à jour
$q->setDescription($ei_view->getElementsByTagName("description")->item(0)->nodeValue);
$q->setIsActive($ei_view->getElementsByTagName("is_active")->item(0)->nodeValue);
$q->save($conn);
} else {
//l'élément n'existe pas encore, et dans ce cas on le crée
$new_ei_view = new EiView();
$new_ei_view->setViewId($view_id);
$new_ei_view->setViewRef($view_ref);
$new_ei_view->setDescription($ei_view->getElementsByTagName("description")->item(0)->nodeValue);
$new_ei_view->setIsActive($ei_view->getElementsByTagName("is_active")->item(0)->nodeValue);
$new_ei_view->setProjectId($project_id);
$new_ei_view->setProjectRef($project_ref);
// $new_ei_view->save($conn);
$collection->add($new_ei_view);
}
}
}
if ($collection->getFirst()) {
$collection->save($conn);
}
//Sauvegarde de la collection
return 1;
}
return null;
//On a retrouvé aucun élément de ce type
}
}
示例14: reload
public function reload($projets, $project_id, $project_ref, Doctrine_Connection $conn = null)
{
if ($conn == null) {
$conn = Doctrine_Manager::connection();
}
//Création de la collection d'objet EiNotice à ajouter
$collection = new Doctrine_Collection("EiNotice");
//Supréssion des notices n'existant plus
$this->deleteNotFoundNotice();
$items = $projets->getElementsByTagName("ei_notices");
if ($items->length > 0) {
//ya t-il des éléments à traiter?
$ei_notices = $items->item(0)->getElementsByTagName("ei_notice");
if ($ei_notices->length > 0) {
foreach ($ei_notices as $ei_notice) {
$notice_id = $ei_notice->getAttribute("notice_id");
$notice_ref = $ei_notice->getAttribute("notice_ref");
//recherche du profil en base
if ($notice_id != null && $notice_ref != null) {
$q = Doctrine_Core::getTable('EiNotice')->findOneByNoticeIdAndNoticeRef($notice_id, $notice_ref);
if ($q && $q != null) {
//si l'element existe , on fait une mise à jour
$q->setName($ei_notice->getElementsByTagName("name")->item(0)->nodeValue);
$q->save($conn);
} else {
//l'élément n'existe pas encore, et dans ce cas on le crée
$new_ei_notice = new EiNotice();
$new_ei_notice->setNoticeId($notice_id);
$new_ei_notice->setNoticeRef($notice_ref);
$new_ei_notice->setFunctionId($ei_notice->getElementsByTagName("function_id")->item(0)->nodeValue);
$new_ei_notice->setFunctionRef($ei_notice->getElementsByTagName("function_ref")->item(0)->nodeValue);
$new_ei_notice->setName($ei_notice->getElementsByTagName("name")->item(0)->nodeValue);
$collection->add($new_ei_notice);
}
}
}
if ($collection->getFirst()) {
$collection->save($conn);
}
//Sauvegarde de la collection
return 1;
}
return null;
}
}
示例15: execute
protected function execute($arguments = array(), $options = array())
{
// initialize the database connection
$databaseManager = new sfDatabaseManager($this->configuration);
$connection = $databaseManager->getDatabase($options['connection'])->getConnection();
$quiet = (bool) $options['quiet'];
$domain = $arguments['domain'];
if (!$quiet) {
echo "Creating deadlines...";
}
$subreddit = SubredditTable::getInstance()->findOneBy('domain', $domain);
/* @var $subreddit Subreddit */
if (!$subreddit) {
return new sfException("Cannot find subreddit by the domain name {$domain}.", 404);
}
if (count($subreddit->getDeadlines())) {
return new sfException("Subreddit has deadlines already.");
}
$authortype_one = AuthorTypeTable::getInstance()->findOneBy('type', 'first_place');
$authortype_two = AuthorTypeTable::getInstance()->findOneBy('type', 'second_place');
$authortype_three = AuthorTypeTable::getInstance()->findOneBy('type', 'third_place');
$authortype_four = AuthorTypeTable::getInstance()->findOneBy('type', 'sudden_death');
$deadlines = new Doctrine_Collection('Deadline');
$deadlines[0] = new Deadline();
$deadlines[0]->setAuthorType($authortype_one);
$deadlines[0]->setSubreddit($subreddit);
$deadlines[0]->setSeconds(259200);
$deadlines[1] = new Deadline();
$deadlines[1]->setAuthorType($authortype_two);
$deadlines[1]->setSubreddit($subreddit);
$deadlines[1]->setSeconds(172800);
$deadlines[2] = new Deadline();
$deadlines[2]->setAuthorType($authortype_three);
$deadlines[2]->setSubreddit($subreddit);
$deadlines[2]->setSeconds(86400);
$deadlines[3] = new Deadline();
$deadlines[3]->setAuthorType($authortype_four);
$deadlines[3]->setSubreddit($subreddit);
$deadlines[3]->setSeconds(0);
$deadlines->save();
if (!$quiet) {
echo "\nFinished.\n";
}
}