-
tp里面更新數據的兩種方式
1.
$model::where(array('字段'=>'值'))->update(array($change));?
或者如圖所示;
查看全部 -
use think\Db;
$db = Db::name('table');
$db->insert($data); //返回值是影響記錄的行數 插入數
$db->insertGetId($data); //返回插入數的自增id
$db->insertAll($data); //返回插入的成功行數
查看全部 -
軟刪除:
首先在模型里面引用SoftDelete
<?php
namespace app\index\model;
use think\Model;
use traits\model\SoftDelete;
class User extends Model{
? ? use SoftDelete;
#刪除數據的時候刪除時間戳默認寫入字段delete_time中,當要自定義時:
// ? ?protected $deleteTime = '自定義刪除時間字段名';
}
然后在控制器里面執行操作:
?public function index(){
// ? ? ? ?$res = User::destroy(4);//被軟刪除
// ? ? ? ?$res = User::get(4);//返回NULL
?
? ? ? ? #查詢包含已刪除的數據
? ? ? ? //$res = User::withTrashed(true)->find(2);
?
? ? ? ? #查詢僅包含已刪除的數據
? ? ? ? $res = User::onlyTrashed()->select();
? ? ? ? foreach ($res as $val){
? ? ? ? ? ? dump($val);
? ? ? ? }
? ? ? ? #若要恢復被軟刪除的數據,直接用update方式將delete_time的值設置為NULL即可
?
? ? ? ? #當開啟軟刪除后要想真正徹底刪除數據,在destroy的第二個參數后面傳入一個true值
? ? ? ? $res = User::destroy(1,true);
?
? ? ? ? #通過get方式進行軟刪除/刪除
? ? ? ? $res = User::get(3);//如果此處數據已經被軟刪除則獲取到的為NULL,后面的操作無效
? ? ? ? $user->delete();//軟刪除
? ? ? ? $res = $user->delete(true);//刪除
? ? }
查看全部 -
全局添加更新時間需要在表中新建create_time和update_time字段,配置文件中設置“auto_timestamp"=>true,一般不開啟這個功能,否則表中不存在該字段時會報錯,真正刪除需要把destroy方法或delete方法的第二個參數設置為true
123456789 use
?think\Model;
use
?traits\model\SoftDelete;
class
?User?
extends
?Model{
????
use
?SoftDelete;使用軟刪除
????
protected
?$autoWriteTimestamp
?=?true;
//開啟自動更新時間
????
protected
?$createTime
?=?false;
//設置為false代表不使用創建時間
????
protected
?$updateTime
?=?
"update_at"
;
//設置自定義更新時間的字段
????
protected
?$deleteTime
?=?
"delete_at"
;
//設置自定義的軟刪除字段
}
查看全部 -
auto (新增及更新的時候自動完成的屬性數組)
insert(僅新增的時候自動完成的屬性數組)
update(僅更新的時候自動完成的屬性數組)
查看全部 -
<?php
????
namespace
?app\index\model;
????
use
?think\Model;
????
class
?User?
extends
?Model{
????????
protected
?$auto
?=?[
????????????
'time'
????????
];
????????
protected
?$insert
?=?[
????????????
'time_insert'
????????
];
????????
protected
?$update
?=?[
????????????
'time_update'
????????
];
????????
public
?function
?setPasswordAttr(
$val
,
$data
){
????????????
//第二個參數是數組數據
????????????
return
?$val
.
$data
[
'email'
];
????????????
return
?md5(
$val
);
????????
}
????????
public
?function
?setTimeAttr(){
????????????
return
?time();
????????
}
????????
public
?function
?setTimeInsertAttr(){
????????????
return
?time();
????????
}
????????
public
?function
?setTimeUpdateAttr(){
????????????
return
?time();
????????
}
????
}
查看全部 -
<?php
????
namespace
?app\index\model;
????
use
?think\Model;
????
class
?User?
extends
?Model{
????????
public
?function
?getSexAttr(
$val
){
????????????
switch
(
$val
){
????????????????
case
?'1'
:
????????????????????
return
?"男"
;
????????????????????
break
;
????????????????
case
?'2'
:
????????????????????
return
?"女"
;
????????????????????
break
;
????????????????
default
:
????????????????????
return
?"未知"
;
????????????????????
break
;
????????????
}
????????
}
????
}
查看全部 -
模型獲取器 成員方法(get字段名Attr)[字段名首字母大寫] 在model中使用 在controller中use下model中的類(該類需繼承model類),利用 ?類名::get() ?進行獲取數據值 可利用toArray獲取改后數據 可利用getData獲取改前數據
查看全部 -
count ? ? User::count(); ? ? ? ? max ? ? ? User::max('字段名') ? sum ? ? ? User::sum('字段名') ? avg ? ? ? User::avg('字段名') ? min ? ? ? User::min('字段名') 都可以和where條件合作
查看全部 -
destroy對數據庫刪除的操作 $userModel = User::get(7); ?$res = $userModel->delete();//對數據庫刪除的操作 $res = User::where("1=1") -> delete();//1=1 清空數據庫
查看全部 -
<?php
namespace
?app\index\controller;
use
?think\Controller;
use
?app\index\model\User;
class
?Index?
extends
?Controller
{
????
public
?function
?index(){
????????
#destroy返回影響行數
//????????$res?=?User::destroy(function?($query){
//???????????$query->where('id','<',5)
//???????????????->whereOr('id','>',10)?;
//????????});
//????????dump($res);
?????????
#get返回影響行數
//????????$userModel?=?User::get(7);
//????????$res?=?$userModel->delete();
//????????dump($res);
?????????
#
delete
,返回影響行數
????????
$res
?=?User::where(
'id'
,10)->
delete
();
????????
dump(
$res
);
????
}
}
查看全部 -
<?php
namespace
?app\index\controller;
use
?think\Controller;
use
?app\index\model\User;
class
?Index?
extends
?Controller
{
????
public
?function
?index(){
????????
#當數據中存在自增id時,數據更新方式,返回修改的內容,無法驗證是否更改
//????????$res?=?User::update([
//????????????'id'?=>?1,
//????????????'username'?=>?'wenco_update'
//????????]);
//????????dump($res->toArray());
?????????
#當數據中不存在自增id時如下,第二個參數即為where,可以為閉包函數,返回修改內容
//????????????????$res?=?User::update([
//????????????'username'?=>?'wenco_update'
//??當第二個參數為數組??????],['id'?=>?'2']);
//當第二個參數為閉包函數????????],function?($query){
//????????????????????$query->where('id','>=',?15);
//????????????????});
?????????
#where?返回被影響行數,推薦使用!
//????????$res?=?User::where('id','between',[1,5])->update([
//????????????'username'?=>?'wenco_old'
//????????]);
//????????dump($res);
?????????
#User::get,返回被影響行數
//????????$userModel?=?User::get(1);
//????????$userModel->username?=?'123';
//????????$userModel->email?=?'[email protected]';
//????????$res?=?$userModel->save();
//????????dump($res);
?????????
#
new
?User,返回影響行數,第二個參數可以為閉包函數
//????????$userModel?=?new?User;
//????????$res?=?$userModel->save([
//????????????'username'?=>?555
//????????],['id'?=>??18]);
//????????dump($res);
?????????
#saveAll,返回結果集,不推薦使用
????????
$userModel
?=?
new
?User;
????????
$res
?=?
$userModel
->saveAll([
????????????
[
'id'
?=>?1,
'username'
?=>?
'wencocococ'
?],
????????????
[
'id'
?=>?2,
'username'
?=>?
'wencocococ'
?]
????????
]);
????????
dump(
$res
);
????
}
}
查看全部 -
// $res = User::create([ // 'username' => 'imooc', // 'password' => md5('imooc'), // 'email' ? ?=> '[email protected]', // 'num' ? ? ?=> 100, // 'demo' ? ? => 123 // ], ['username', 'email']); // $userModel = new User; // $userModel->username = '17771258'; // $userModel->email = '[email protected]'; // $userModel->password = md5('17771258'); // $userModel->save(); // $userModel = new User; // $res = $userModel // ->allowField('username') // ->save([ // 'username' ?=> 'imooc1', // 'password' ?=> md5('imooc1'), // 'demo' ? ? ?=> 123 // ]); $userModel = new User; $res = $userModel->saveAll([ ['email'=> '[email protected]'], ['email'=> '[email protected]'] ]); foreach($res as $val) { dump($val->toArray()); } //dump($res); //dump($res);
查看全部 -
Model->get 返回對象 用toarray 獲取信息
查看全部 -
使用模型查詢數據;#通過get方式獲取數據,括號內可以為主鍵,也可以為閉包函數
// ? ? ? ?$res = User::get(function($query){
// ? ? ? ? ? ?$query->where("username","eq","wenco_3")
// ? ? ? ? ? ?->field("email");
// ? ? ? ?});
?
// ? ? ? ?$res = User::where("id","<=",15)
// ? ? ? ? ? ?->field("id,username")
// ? ? ? ? ? ?->limit(19)
// ? ? ? ? ? ?->order("id" ?,"DESC")
// ? ? ? ? ? ?->select();
查看全部
舉報