1. 程式人生 > >【TP5.0】model的操作方法

【TP5.0】model的操作方法

新增 src ted lse 圖片 希望 ace 復制代碼 推薦

//默認主鍵為自動識別,如果需要指定,可以設置屬性:

namespace app\index\model;

use think\Model;

class User extends Model
{
    protected $pk = ‘uid‘;
    // 設置當前模型對應的完整數據表名稱
    protected $table = ‘think_user‘;

}
技術分享圖片

使用助手函數model()快速實例化模型(推薦)

技術分享圖片
 public function save(){
        $user = model(‘User‘);  // 使用model 即可快速實例化模型,不必使用 $user = new User();
        $list = [
            [‘name‘=>‘thinkphp‘,‘email‘=>‘[email protected]‘]
        ];
        $user->saveAll($list);
    }
技術分享圖片

save()方法添加單條數據

技術分享圖片
//使用data方法批量添加數據:
namespace app\index\controller;
use think\Controller;
use think\Request;
use app\index\model\User as UserModel;
public function save(){ $user = new UserModel; $user->data([ ‘name‘ => ‘thinkphp‘, ‘email‘ => ‘[email protected]‘ ]); $count = $user->save();  
dump($count)  // save方法新增數據返回的是寫入的記錄數
}

技術分享圖片 技術分享圖片
// 使用allowField過濾非數據表字段
public function save(Request $request){
        $user = new UserModel();
        // $_POST過來的數據中包含數據表中沒有的字段
        $user->data($request->param());    // 或者$_POST
       // 只會保存數據表中有的字段
        $user->allowField(true)->save();
    }    
技術分享圖片 技術分享圖片
// 希望某些指定字段寫入
    public function save(Request $request){
        $user = new UserModel();
        $user->data($request->param());   
        // 只寫入name字段和email字段的值
        $count = $user->allowField([‘name‘,‘email‘])->save();
        dump($count);die;
    }
技術分享圖片 技術分享圖片
// 獲取自增id
    public function save(Request $request){
        $user = new UserModel();
        $user->data($request->param());   
        $user->allowField(true)->save();
        echo $user -> id;    // 輸出當前插入數據的主鍵
    }
技術分享圖片 技術分享圖片
   //如果同一個實例裏面多次新增數據,必須使用isUpdate(false)
 public function save(Request $request){
        $user = new UserModel();
        $user->data($request->param());
        $user->allowField([‘name‘])->save();    // 插入第一條數據
        $user->name=‘thinkphp‘;
        $user->email=‘[email protected]‘;
        $user->allowField([‘email‘])->isUpdate(false)->save(); // 再次插入一條數據
    }
技術分享圖片

saveAll()方法添加多條數據

技術分享圖片
// saveAll()同時添加多條數據
    public function save(Request $request){
        $user = new UserModel();
        $list = [
            [‘name‘=>‘thinkphp‘,‘email‘=>‘[email protected]‘],
            [‘name‘=>‘chrdai‘,‘email‘=>‘[email protected]‘]
        ];
       $user->saveAll($list);
    }
技術分享圖片 技術分享圖片
// saveAll()方法中若數據中帶有主鍵,則為更新操作,若不帶主鍵則為插入操作
    public function save(Request $request){
        $user = new UserModel();
        $list = [    // 此處的兩條數據將執行更新操作
            [‘id‘=>1,‘name‘=>‘thinkphp_update‘,‘email‘=>‘[email protected]‘],
            [‘id‘=>2,‘name‘=>‘chrdai_update‘,‘email‘=>‘[email protected]‘]
        ];
       $user->saveAll($list);
    }
技術分享圖片

靜態調用create方法創建並寫入

技術分享圖片
// 使用create方法可以直接將數據插入到數據庫
 public function save(Request $request){
        $user = UserModel::create([
            ‘name‘=>‘thinkphp‘,    // 此處的字段必須是數據表中存在的
            ‘email‘=>‘[email protected]‘
        ]);
        echo $user->id; // 獲取當前插入數據的id
    }
技術分享圖片

【TP5.0】model的操作方法