ThinkPHP5.0的模型CURD創建Create操作

模型的主要功能包括數據處理和業務邏輯,而這些都離不開數據的CURD操作,因此我們首先來談下數據的CURD操作,在掌握了數據庫Db類的用法後,模型的CURD操作就會很容易理解,因為本質上模型的CURD操作最終調用的還是Db類的操作,區別在於使用了ActiveRecord模式和單獨做了一層封裝而已,我們來看下兩種方式CURD操作用法的簡單對比(其中模型會給出動態和靜態兩種實現方法,分別對應不同的場景)。

ThinkPHP5.0的模型CURD創建Create操作

上面兩種方式等效,當你的模型數據比較多不想一一賦值的時候,可以使用後者。也許你咋一看還覺得麻煩了,又是實例化又是賦值的,但好處多多,慢慢你就會體會到了,看起來是一個簡單的賦值和保存操作其實內裡大有乾坤,可以觸發很多處理甚至事件。save方法的返回值不是自增主鍵的值(和Db的execute方法一樣返回影響的記錄數),要獲取自增主鍵的值可以使用下面的方式:

ThinkPHP5.0的模型CURD創建Create操作

和save方法不同,create方法的返回值是User模型的對象實例,而save方法調用的時候本身就在對象實例裡面。很多開發者不習慣靜態調用,這裡必須說明的是模型類的靜態CURD操作其實都是內部自動實例化而已,所以說白了提供的這些靜態操作方法只是對動態CURD操作方法的靜態封裝罷了。至於靜態方法的場景,主要是不想實例化或者不方便實例化的需求,而且支持變量的靜態調用,例如:

$model = '\app\index\model\User';

$user = $model::create([

'name' => 'thinkphp',

'email' => '[email protected]',

]);

創建操作用法小結:

方法返回值
save(動態)影響的記錄數
create(靜態) 模型對象實例


分享到:


相關文章: