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