Category Archives: PHP

[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

[ZF]Zend_Db_Table

Zend Framework 中的 Zend_Db 可以針對資料庫操作,而 Zend_DB_Table 底下繼承了許多像 Zend_Db_Select 之類的物件提供一些函式幫你組合 SQL query 和存取 DB

範例 1.產生 DB Adapter

2.組合 Query String

3.執行 Query String

Continue Reading

[Laravel]Query Builder

Laravel 中的 Query Builder 是一個可以幫你組合 SQL Query 並連結資料庫的物件,底層是使用 PDO 連結資料庫。 如果沒有使用 Eloquent ORM 的話,Query Builder 也是個不錯的選擇

1.Select

2.Join

3.Advanced Wheres

4.Aggregates

5.Insert

6.Update

7.Show Query String

8.Limit

Continue Reading

[Laravel]Defining Helper

在 Laravel 中如果想要自己加一些 Helper function,只要幾個簡單的步驟就可以很方便的利用 Laravel 本身提供的 ClassLoader 自訂 Helper。

1.先在 app 目錄裡面建一個存放 Helper class 的目錄(例如叫 classes)

2.到 app/start/global.php 透過原先預設的 ClassLoader 設定再加入 classes 目錄

3.自訂 Helper (app/classes/Helper.php)

4.使用 Helper

Continue Reading

[Laravel]upgrade error

透過 composer 升級 Laravel 後會出現以下錯誤訊息

主要原因是在根目錄的bootstrap 底下多出一個 compiled.php 檔案定義一些 class loader

刪除即可恢復正常

Continue Reading

[Laravel]Form

Laravel 中的 Form class 可以協助產生前端表單

基本表單使用

表單內容操作

結合 Model 使用 Controller

View

Drop-Down Lists

Custom Macros

Continue Reading