thinkPHP使用模型更新數據


一.用模型靜態方法:update([更新數組],[更新條件])

1.更新條件用數組給出

public function test()
{
//$res = $this->data->getMenu();
//獲取模型對象
$model = new Data();
$res = Data::update([
'node_name' => 'hahahaa',
'typeid' => 44,
], ['id' => 11]);
dump($res);
}

2.更新函數用閉包函數給出

public function test()
{
//$res = $this->data->getMenu();
//獲取模型對象
$model = new Data();
$res = Data::update([
'node_name' => 'ge',
], function ($query) {
$query->where([
'id' => ['>', 11],
'typeid' => ['BETWEEN', [13, 20]],
]);
});
dump($res);
}
閉包函數通常只用來生成復雜的查詢條件,參數只有一個,$query就是查詢類實例對象
 
二.用模型直接調用Db類方法
三.模型的save()方法:
能將模型中的數據寫入到表的對應字段中,所以用save()方法更新表中數據,第一步就是獲取表中需要更新的數據,即初始化當前數據模型
1.用模型中的數組去更新字段
public function test()
{
//$res = $this->data->getMenu();
//獲取更新數據,初始化模型對象,讀取主鍵
$data = Data::get(11);
//更新數據模型
$data->node_name = '李達康';
$data->typeid = 4;
//將模型數據寫入對應的字段中
$res = $data->save();

//等價於
// $res=$data->save([
// 'node_name'=>'李達康',
// 'typeid'=>4
// ]);
//返回受影響的記錄數int(1)
dump($res);
}
 
//對於復雜的條件,可以用閉包來構造查詢表達式
public function test()
{
//$res = $this->data->getMenu();
$model = new Data();
$res = $model->save([
'node_name' => 'jjjj',
], function ($query) {
$query->where('id', 'GT', 10)
->where('typeid', 'LT', '18');
});
dump($res);
}
 
三.模型動態調用saveAll(二維關聯數組):同時更新多個記錄
saveAll()只需傳一個參數數組,數組中的每一個元素又是一個與表字段對應的關聯數組
public function test()
{
//$res = $this->data->getMenu();
$model = new Data();
$res = $model->saveAll([
['id' => 1, 'node_name' => '我是一'],
['id' => 2, 'node_name' => '我是二'],
]);
dump($res);
}
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM