2011-01-26 1 views
5

je dois mettre à jour plusieurs colonnes Symfony, mais je ne peux trouver nulle part la solution ... Donc, je voudrais le faire de cette façon:Mettre à jour plusieurs colonnes avec dans symfony

$q = Doctrine_Query::create() 
    ->update('WebusersTable q') 
    ->set('q.login_name','?','John') 
    ->where('q.webuser_id=?',1) 
    ->execute(); 

OK, cela fonctionne, mais je dois le faire avec plusieurs colonnes. J'ai essayé quelque chose comme ça, mais il ne fonctionne pas:

$q = Doctrine_Query::create() 
    ->update('WebusersTable q') 
    ->set('q.login_name,q.name','?','kaka,pisa') 
    ->where('q.webuser_id=?',1) 
    ->execute(); 

Répondre

14

Essayez:

$q = Doctrine_Query::create() 
    ->update('WebusersTable q') 
    ->set('q.login_name', 'John') 
    ->set('q.name', 'Another value') 
    ->where('q.webuser_id=?',1) 
    ->execute(); 
+0

Wow! Ça marche! Merci beaucoup! :) – kungfucsiga

+0

Neat - pas vu que utilisé auparavant. +1 :) – richsage

+0

Comment jQuery sait-il que John est un nom littéral, pas un nom de colum (je demande parce qu'il y a des exemples comme -> set ('amount', 'amount + 200') et j'ai des problèmes dans ce sens ... –

1

Essayez

$q = Doctrine_Query::create() 
->update('WebusersTable q') 
->set(array('q.login_name' => 'John', 
      'q.name' => 'Another value')) 
->where('q.webuser_id=?',1) 
->execute(); 
0
class contentActions extends sfActions { 

const TABLE_NAME_ARTICLE = 'article'; 

/** 
* Executes index action 
* 
* @param sfRequest $request A request object 
*/ 
public function executeIndex(sfWebRequest $request) { 


    // Get id from $_GET 
    $id = $request->hasParameter('id') ? $request->getParameter('id') : $request->getPostParameter(self::TABLE_NAME_ARTICLE . '[id]'); 

    // Create model active row by id 
    $modelActiveRow = Doctrine::getTable(self::TABLE_NAME_ARTICLE)->find($id); 

    // Verify existence article 
    $this->forward404Unless($modelActiveRow); 

    // Get form name 
    $formName = self::TABLE_NAME_ARTICLE . 'Form'; 

    // Create article form object. Use model article (load data). 
    $this->form = new $formName($modelActiveRow); 

    if ($request->isMethod('post')) { 

     $postData = $request->getParameter(self::TABLE_NAME_ARTICLE); 
     $this->form->bind($postData); 

     if ($this->form->isValid()) { 
      $this->form->save(); 
      $this->getUser()->setFlash('notice', 'Changes were successfully saved.'); 
      // redirect 
     } 
    } 

} 

}

Questions connexes