新增,更新,刪除

2018-02-24 15:52 更新

要從模型新增一條數(shù)據(jù)到數(shù)據(jù)庫(kù),只要建立一個(gè)模型實(shí)例并調(diào)用 save 方法即可。

儲(chǔ)存新的模型數(shù)據(jù)

$user = new User;
$user->name = 'John';
$user->save();

注意: 通常 Eloquent 模型主鍵值會(huì)自動(dòng)遞增。但是您若想自定義主鍵,將 incrementing 屬性設(shè)成 false 。

也可以使用 create 方法存入新的模型數(shù)據(jù),新增完后會(huì)返回新增的模型實(shí)例。但是在新增前,需要先在模型類(lèi)里設(shè)定好 fillableguarded 屬性,因?yàn)?Eloquent 默認(rèn)會(huì)防止批量賦值。

在新模型數(shù)據(jù)被儲(chǔ)存或新增后,若模型有自動(dòng)遞增主鍵,可以從對(duì)象取得 id 屬性值:

$insertedId = $user->id;

在模型里設(shè)定 Guarded 屬性

class User extends Model {
    protected $guarded = ['id', 'account_id'];
}

使用模型的 Create 方法

// 在數(shù)據(jù)庫(kù)中建立一個(gè)新的用戶(hù)...
$user = User::create(['name' => 'John']);
// 以屬性找用戶(hù),若沒(méi)有則新增并取得新的實(shí)例...
$user = User::firstOrCreate(['name' => 'John']);
// 以屬性找用戶(hù),若沒(méi)有則建立新的實(shí)例...
$user = User::firstOrNew(['name' => 'John']);

更新取出的模型

要更新模型,可以取出它,更改屬性值,然后使用 save 方法:

$user = User::find(1);
$user->email = 'john@foo.com';
$user->save();

儲(chǔ)存模型和關(guān)聯(lián)數(shù)據(jù)

有時(shí)您可能不只想要儲(chǔ)存模型本身,也想要儲(chǔ)存關(guān)聯(lián)的數(shù)據(jù)。您可以使用 push 方法達(dá)到目的:

$user->push();

您可以結(jié)合查詢(xún)語(yǔ)句,批次更新模型:

$affectedRows = User::where('votes', '>', 100)->update(['status' => 2]);

注意: 若使用 Eloquent 查詢(xún)構(gòu)造器批次更新模型,則不會(huì)觸發(fā)模型事件。

刪除模型

要?jiǎng)h除模型,只要使用實(shí)例調(diào)用 delete 方法:

$user = User::find(1);
$user->delete();

按主鍵值刪除模型

User::destroy(1);
User::destroy([1, 2, 3]);
User::destroy(1, 2, 3);

當(dāng)然,您也可以結(jié)合查詢(xún)語(yǔ)句批次刪除模型:

$affectedRows = User::where('votes', '>', 100)->delete();

只更新模型的時(shí)間戳

如果您只想要更新模型的時(shí)間戳,您可以使用 touch 方法:

$user->touch();
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)