您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“thinkphp5中save方法如何用”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當(dāng),希望這篇“thinkphp5中save方法如何用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。
在thinkphp5中,save()方法用于向指定數(shù)據(jù)表中添加一條記錄,該方法每次僅能向表中添加一條新記錄,添加多條可重復(fù)執(zhí)行,語法為“模型對象 -> save(數(shù)組)”或“模型對象 -> data(數(shù)組) -> save();”。
本文操作環(huán)境:Windows10系統(tǒng)、ThinkPHP5版、Dell G3電腦。
新增單條數(shù)據(jù):save( )方法
功能:向指定數(shù)據(jù)表中添加一條記錄
該方法每次僅能向表中添加一條新記錄,添加多條可重復(fù)執(zhí)行,不過后面要學(xué)習(xí)的saveAll()可一次性添加多條
save方法是Model類中較復(fù)雜的方法之一,因為save方法身兼多職,不僅用于新增,還可以用于更新數(shù)據(jù)。
基本語法:
格式1:將數(shù)據(jù)直接寫在save方法參數(shù)中
模型對象 -> save(數(shù)組);
格式2:先生成數(shù)據(jù)對象,然后用save方法直接寫入表中
模型對象 -> data(數(shù)組) -> save();
這二種語法都可以完成新增操作。但是第二種語法結(jié)構(gòu)更加清晰,可讀性好,修改更加方便。
<?php namespace app\index\controller; use app\index\model\Staff; class Index { public function index(){ //1.創(chuàng)建數(shù)據(jù):與表中字段對應(yīng) $data = []; $data['name'] = '周星星'; $data['sex'] = 1; $data['age'] = 39; $data['salary'] = 3500; $data['dept'] = 3; $data['hiredate'] = date('Y-m-d',time()); //2.創(chuàng)建數(shù)據(jù)對象 $model = (new Staff())-> data($data); //3.獲取新增操作執(zhí)行前:數(shù)據(jù)對象原始數(shù)據(jù) $data_before = $model -> getData(); //4.查看新增操作執(zhí)行前的數(shù)據(jù)對象:$model echo '查看新增操作執(zhí)行前的數(shù)據(jù)對象:<br />'; dump($data_before); //5.將數(shù)據(jù)對象原始數(shù)據(jù)寫入數(shù)據(jù)表中,返回影響記錄數(shù) //allowField(true)過濾post數(shù)組中的非數(shù)據(jù)表字段數(shù)據(jù) $affected = $model -> allowField(true) -> save(); //6.獲取新增操作執(zhí)行后:數(shù)據(jù)對象原始數(shù)據(jù) $data_after = $model -> getData(); //7.查看新增操作執(zhí)行后的數(shù)據(jù)對象:$model echo '查看新增操作執(zhí)行后的數(shù)據(jù)對象:<br />'; dump($data_after); //8. 獲取新增記錄的主鍵id,等價于: $model -> id $insert_ID = $affected ? $data_after['id'] : null; //6.驗證是否新增成功 echo $affected ? '新增成功!新記錄主鍵id是:'.$insert_ID : '新增失敗!'; } }
save()方法
class Index { public function index(){ //1.創(chuàng)建數(shù)據(jù):與表中字段對應(yīng) $data = []; $data['name'] = '周星星'; $data['sex'] = 1; $data['age'] = 39; $data['salary'] = 3500; $data['dept'] = 3; $data['hiredate'] = date('Y-m-d',time()); $model = new Staff(); $affected = $model -> allowField(true) -> save($data); $data['name'] = '周星星'; $data['sex'] = 1; $data['age'] = 39; $data['salary'] = 3000; $data['dept'] = 3; $data['hiredate'] = date('Y-m-d',time()); $affected = $model -> allowField(true) -> setAttr('id',null) //清空ID -> isUpdate(false) //顯式指定新增 -> save($data);
讀到這里,這篇“thinkphp5中save方法如何用”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。