當前位置: 首頁> 最新文章列表> Laravel 模型軟刪除、左連接與表別名使用示例

Laravel 模型軟刪除、左連接與表別名使用示例

gitbox 2025-07-29

Laravel 模型軟刪除、左連接與表別名使用示例

Laravel 是一款流行的PHP 框架,內置強大的Eloquent ORM 工具,可以通過類表示數據庫表,簡化數據操作。在開發過程中,我們常常需要使用軟刪除、左連接等查詢方式,本文將介紹如何在Laravel 模型中實現這些功能。

軟刪除

軟刪除是一種邏輯刪除方式,通過設置特定字段(如deleted_at)來標記數據已刪除,而非實際刪除。這種方式可以安全地恢復已刪除的數據。 Laravel 提供了簡單易用的軟刪除機制,示例代碼如下:

 use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class Post extends Model
{
    use SoftDeletes;
}

添加SoftDeletes 後,就可以使用軟刪除功能。例如,使用`withTrashed` 方法查詢已軟刪除的數據:

 <span class="fun">$posts = Post::withTrashed()->get();</span>

或者恢復已軟刪除的數據:

 $post = Post::withTrashed()->find($id);
$post->restore();

左連接

左連接允許你在查詢時同時獲取左表和右表的數據。即使右表的數據沒有匹配,仍然會返回左表的數據,右表的相關字段則為NULL。在Laravel 中,左連接的語法如下:

 $users = DB::table('users')
             ->leftJoin('posts', 'users.id', '=', 'posts.user_id')
             ->select('users.*', 'posts.title')
             ->get();

這個查詢會返回一個包含用戶信息和對應文章標題的數組。

表別名

在復雜的查詢中,使用表別名可以有效減少代碼的複雜度,提高可讀性。在Laravel 中,可以使用類似SQL 的方式來設置表別名,示例如下:

 $results = DB::table('users')
            ->join('contacts', function ($join) {
                $join->on('users.id', '=', 'contacts.user_id')
                     ->where('contacts.user_id', '>', 5);
            })
            ->select('users.*', 'contacts.phone')
            ->get();

通過這種方式,我們可以在查詢中清晰地表示多個表的關係。

總結

本文詳細介紹了在Laravel 中如何使用軟刪除、左連接和表別名。通過軟刪除,可以保護數據不被誤刪;左連接能夠聯合多個表進行查詢;而表別名則使得複雜查詢更易於編寫和理解。這些技術不僅能提高代碼的質量,也能提升開發效率。