[Laravel]Eloquent ORM Global Scopes(Soft Deleting)

Laravel Eloquent ORM中有 Soft Deleted 機制,刪除時並不會直接刪除 DB 中的 record,而是在 deleted_at 紀錄 timestamp。

但是在使用 Model 時,都要多寫一個 query 來判斷 deleted_at 是否存在來判斷該 record 是否被刪除。就算在 Model 中寫 Query Scopes 也必須做這個判斷,這時候就可以透過 Eloquent 中的 Global Scopes 預設讓 Model 不會存取到已被標記刪除的 record 。

使用方法其實很簡單,只要use 一個 Eloquent 內建的 Trait 即可。

這邊說明一下原理: SoftDeletingTrait 是在 Illuminate\Database\Eloquent 中,在使用 Model 時會呼叫 bootSoftDeletingTrait(),這個方法會加入一個叫 SoftDeletingScope 的 Group Scope

SoftDeletingScope

Continue Reading

[AngularJS]ngChecked

在 AngularJS 中操作 Checkbox 有非常多的小技巧可以使用開發上更為方便。

在使用上,一樣是直接在 input 上掛上 ng-model 來控制,另外可以透過 ng-true-value 、 ng-false-value 來控制 value,如果要初始化決定是否已點擊時則是透過 ng-checked 來判斷。

HTML

Javascript

Continue Reading

[Javascript]is.js

is.js 是一個拿來 check 用的 library,它可以檢查很多物件、型態、格式的正確性。

可以透過 npm 或 bower 安裝

範例(詳細範例可參考官網文件)

Continue Reading

[CSS]normalize.css

一般狀況下,開發網頁時為了避免一些瀏覽器元素樣式的差異,通常都會使用一切 reset.css 這種概念的東西去處理,不過很多時候這件事都只是自己在維護。

現在已經有不錯使用的套件了,normalize.css 就是在處理這樣的問題,也可以透過多種方式安裝。

bower 範例

Continue Reading

Fontface Ninja

Fontface Ninja是一個可以一鍵快速查詢字體、行高、大小的瀏覽器工具,而且查詢的同時也可以直接下載。

不過如果對於某款字型特別情有獨鐘,還是請付費支持。

Continue Reading