摘要:鮮為人知的模型方法判斷模型是否有記錄如果需要確認(rèn)模型是否存在某個(gè)記錄,可以使用方法。恢復(fù)軟刪除的模型使用方法將字段設(shè)為實(shí)現(xiàn)恢復(fù)軟刪除的模型對(duì)象。總結(jié)有很多很贊的特性,但有些由于不常用而鮮為人知。
鮮為人知的 Laravel Eloquent 模型方法 1 判斷模型是否有記錄
如果需要確認(rèn)模型是否存在某個(gè)記錄,可以使用 exists() 方法。不同于 find() 方法返回模型對(duì)象,exists() 返回 boolean 類型已確定是否存在模型對(duì)象。
exists();2 判斷模型是否被軟刪除
通過 SoftDeletes 可以判斷給定的模型是否棄用。使用 trashed() 方法通過判斷模型的 created_at 字段是否為 null 來確定模型是否軟刪除
trashed();3 刪除棄用模型
當(dāng)我們對(duì)已使用 SoftDeletes 進(jìn)行軟刪除的模型對(duì)象調(diào)用 delete() 方法刪除對(duì)象時(shí),并非真的刪除該模型對(duì)象在數(shù)據(jù)庫中的記錄,
而僅僅是設(shè)置 created_at 字段的值。那如何真的刪除一個(gè)已軟刪除的模型對(duì)象呢?在這種情況時(shí)我們需要使用 forceDelete() 方法實(shí)現(xiàn)從數(shù)據(jù)庫中刪除記錄。
forceDelete(); // A little trick, do determine when to soft- and force delete a model $product->trashed() ? $product->forceDelete() : $product->delete();4 恢復(fù)軟刪除的模型
使用 restore() 方法將 created_at 字段設(shè)為 null 實(shí)現(xiàn)恢復(fù)軟刪除的模型對(duì)象。
restore();5 復(fù)制模型對(duì)象
某些場(chǎng)景下我們需要復(fù)制一個(gè)現(xiàn)有模型,通過 replicate() 方法可以復(fù)制已有模型全部屬性。
replicate();
提示: 如果需要同時(shí)復(fù)制模型的關(guān)系模型,則需要手動(dòng)的迭代創(chuàng)建,replicate() 是無法實(shí)現(xiàn)該功能的。
總結(jié)Eloquent ORM 有很多很贊的特性,但有些由于不常用而鮮為人知。通過對(duì) Laravel 文檔,論壇和 Laravel 源碼的深入學(xué)習(xí)和研究。
我們可以發(fā)現(xiàn)很多實(shí)用的 Laravel 特性。
Less Known Eloquent Model Actions
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/28597.html
摘要:看起來是一個(gè)簡(jiǎn)單的機(jī)制,但是在底層,有很多半隱藏的函數(shù)和鮮為人知的方式來實(shí)現(xiàn)更多功能。在這篇文章中,我將演示幾個(gè)小技巧。另外,在里也有些和時(shí)間相關(guān)的預(yù)定義方法通過關(guān)系排序一個(gè)復(fù)雜一點(diǎn)的技巧。幸運(yùn)的是,確實(shí)有這樣的方法。 showImg(https://segmentfault.com/img/bV8L5s?w=1240&h=634); Eloquent ORM 看起來是一個(gè)簡(jiǎn)單的機(jī)制,...
摘要:從而達(dá)到了軟刪除。不過,你可以通過在查詢中調(diào)用方法來強(qiáng)制查詢已被軟刪除的模型方法也可以被用在關(guān)聯(lián)查詢只取出軟刪除數(shù)據(jù)會(huì)只取出軟刪除數(shù)據(jù)恢復(fù)被軟刪除的模型有時(shí)候你可能希望取消刪除一個(gè)已被軟刪除的模型。 Laravel 有三寶,路由、容器和 Eloquent ORM,Eloquent ORM。我個(gè)人一直比較推薦于在實(shí)際操作中學(xué)習(xí),之前簡(jiǎn)單了解了路由和Eloquent ORM的基本用法,今天...
摘要:是一個(gè)功能豐富的框架。但是,你無法從官方文檔中找到所有可用的功能。例數(shù)據(jù)庫又插入一條為的數(shù)據(jù)。也很樂意聽到你對(duì)此的看法和想法。你可以在上找到我。 showImg(https://segmentfault.com/img/remote/1460000017973901?w=800&h=511); Laravel 是一個(gè)功能豐富的框架。但是,你無法從官方文檔中找到所有可用的功能。以下是一些...
摘要:是什么是一個(gè),全稱為,翻譯為對(duì)象關(guān)系映射如果只把它當(dāng)成數(shù)組庫抽象層那就太小看它了。所謂對(duì)象,就是本文所說的模型對(duì)象關(guān)系映射,即為模型間關(guān)系。至此,深入理解系列文章到此結(jié)束。 原文發(fā)表在我的個(gè)人網(wǎng)站:深入理解 Laravel Eloquent(三)——模型間關(guān)系(關(guān)聯(lián)) 在本篇文章中,我將跟大家一起學(xué)習(xí) Eloquent 中最復(fù)雜也是最難理解的部分——模型間關(guān)系。官方英文文檔中...
摘要:本節(jié)將使用用戶創(chuàng)建博文來學(xué)習(xí)數(shù)據(jù)模型關(guān)聯(lián)的有關(guān)知識(shí)。我們發(fā)現(xiàn)為我們生成的時(shí)間是英文的,如果要使用中文時(shí)間,則需要對(duì)進(jìn)行本地化設(shè)置。動(dòng)態(tài)屬性讓你能夠訪問關(guān)聯(lián)函數(shù),就像他們是在模型中定義的屬性會(huì)假設(shè)對(duì)應(yīng)關(guān)聯(lián)的外鍵名稱是基于模型名稱的。 本節(jié)將使用用戶創(chuàng)建博文來學(xué)習(xí)數(shù)據(jù)模型關(guān)聯(lián)的有關(guān)知識(shí)。 一、Laravel常用知識(shí)總結(jié) 1.提示信息漢化 如果用Laravel原生的表單提示錯(cuò)誤信息,則是英文...
閱讀 3698·2021-09-30 09:59
閱讀 2366·2021-09-13 10:34
閱讀 589·2019-08-30 12:58
閱讀 1518·2019-08-29 18:42
閱讀 2213·2019-08-26 13:44
閱讀 2933·2019-08-23 18:12
閱讀 3332·2019-08-23 15:10
閱讀 1636·2019-08-23 14:37