2016-11-09 10 views
0

cakephp 3のデータを更新するには?Cakephp 3更新クエリ

+0

は、まずチェックここで質問をする前に[データの更新方法](https://book.cakephp.org/3.0/en/orm/saving-data.html#updating-data)のCakePHP 3文書を参照してください。これはもっと怠けだと思う​​。 – CodeWhisperer

答えて

5

あなたは、そのような別の方法で使用することができます

$tablename = TableRegistry::get("Model"); 
$query = $tablename->query(); 
      $result = $query->update() 
        ->set(['fieldname' => 'value']) 
        ->where(['condition' => 'value']) 
        ->execute(); 
+1

これはデータを更新するデフォルトの方法ではないことに注意してください。これはModel.afterSaveのようなイベントをトリガーしません。 – jurrieb

3

、これを試してください:あなたはまた、作成/更新することができます

$tablename = TableRegistry::get("Model"); 
$conditions = array('id'=>12); 
$fields = array('name'=>'andro','family'=>'lpoez'); 
$tablename->updateAll($fields, $conditions); 
+0

リファレンスhttps://book.cakephp.org/3.0/en/orm/saving-data.htmlセクション一括更新 – omid

0
use Cake\ORM\TableRegistry; 

$articlesTable = TableRegistry::get('Articles'); 
$article = $articlesTable->get(12); // Return article with id 12 

$article->title = 'CakePHP is THE best PHP framework!'; 
$articlesTable->save($article); 
+4

ようこそStackOverflow。質問に対する善良な答えには、単なるコード以上のものが含まれていなければなりません。あなたが何をしているのか、正しい答えであると信じる理由についての説明が必要です。また、コードを正しく投稿する方法については、回答エディタの書式設定ガイドを参照してください。 – yakatz

0

は)(newEntityを使用した場合(表の情報を結合する)またはpatchEntity。あなたのPOSTデータは次のようになります。

//お使いのデータを更新する

$table = $this->Table->get($id); //get data using id 

if ($this->request->is(['post'])) { 
    $post_data = $this->request->data; 
    $table = $this->Tags->patchEntity($table, $post_data); 
    $this->Table->save($table); //update record 
} 
0

も同様に簡単で、save()メソッドレコードの更新のために新規レコード、

$table = $this->Table->newEntity(); 

if($this->request->is(['post'])){ 
    $post_data = $this->request->data; 
    $table = $this->Tags->patchEntity($table, $post_data); 
    $this->Table->save($table); //save record 
} 

//を追加

use Cake\ORM\TableRegistry; 

$articlesTable = TableRegistry::get('Articles'); 
$article = $articlesTable->get($id); // Return article with id = $id (primary_key of row which need to get updated) 

$article->title = 'CakePHP is THE best PHP framework!'; 
// other fields if necessary 
.......... 
$articlesTable->save($article); 

CookBook official Documentation

:また、その目的のために使用されています
0

データを更新する方法は複数あります。

あなたは既存のエンティティを取得することができ、変更値と更新:あなたは、インスタンスの要求データの配列を持つエンティティにパッチを適用することができます https://book.cakephp.org/3.0/en/orm/saving-data.html#updating-data

$entity = TableRegistry::get('Users')->get(1); 
$entity->name = 'foo'; 
TableRegistry::get('Users')->save($entity); 

https://book.cakephp.org/3.0/en/orm/saving-data.html#merging-request-data-into-entities

$entity = TableRegistry::get('Users')->get(1); 
TableRegistry::get('Users')->patchEntity($entity, $this->request>getData); 
TableRegistry::get('Users')->save($entity);