如何在 Laravel Eloquent 中選擇特定欄位?


Laravel Eloquent 提供了許多從表中選擇所需欄位的方法。以下是一些示例,展示瞭如何實現。

示例 1

以下是一個示例:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; class UserController extends Controller { public function index() { $users = User::select('name', 'email')->where('id', 1)->get(); foreach ($users as $u) { echo $u->name."=>".$u->email; } } }

輸出

以上程式碼的輸出為:

Siya Khan=>siya@gmail.com

以上示例等同於以下 SQL 查詢:

SELECT name, email FROM users WHERE id=1;

以上程式碼的輸出為:

+-----------+----------------+
| name      |       email    |
+-----------+----------------+
| Siya Khan | siya@gmail.com |
+-----------+----------------+

示例 2

另一種從表中獲取欄位的方法如下所示:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; class UserController extends Controller { public function index() { $users = User::where('id', 1)->get(['name','email']); foreach ($users as $u) { echo $u->name."=>".$u->email; } } }

輸出

以上程式碼的輸出為:

Siya Khan=>siya@gmail.com

示例 3

在下面,我們使用了all()方法以及我們需要的表字段。它將獲取表中所有資料以及欄位值。

它的 SQL 查詢為:

SELECT name, email from USERS;
示例如下所示:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; class UserController extends Controller{ public function index() { $users = User::all('name','email'); foreach ($users as $u) { echo $u->name."=>".$u->email." "; } } }

輸出

以上程式碼的輸出為:

Siya Khan=>siya@gmail.com
Heena Khan=>heena@gmail.com
Seema=>SZJj8osSc1@gmail.com
Neha Singh=>KBc9tUG3pp@gmail.com
d7jhMWRMQe=>gOklW2HTzB@gmail.com
k118AjAswp=>y9bFEVQlI2@gmail.com
7ZH2Vk0TAp=>gZGo5mg53G@gmail.com
w8QSXDIBVU=>PZMoXHjCDs@gmail.com
feO56tC0sO=>PpZTTyMoZw@gmail.com
MntJcvWT2L=>GgCQRP16oP@gmail.com
RANLQbtj44=>Npkx5T2U1F@gmail.com
bben5rsdVv=>ogjjwF8GC3@gmail.com

示例 4

使用pluck()方法獲取欄位,如下所示:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; class UserController extends Controller { public function index() { $users = User::where('id', 1)->pluck('name', 'email')->all(); print_r($users); } }

輸出

以上程式碼的輸出為:

Array ( [siya@gmail.com] => Siya Khan )

示例 5

使用find()方法獲取我們需要的欄位。

語法為:

Model::find(valuetobeserarched, ['field1', 'field2']);

示例如下所示:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; class UserController extends Controller { public function index() { $users = User::find(1, ['name', 'email']); print_r($users); } }

輸出

以上程式碼的輸出為

attributes:protected] => Array(
   [name] => Siya Khan
   [email] => siya@gmail.com
)

更新於: 2022年8月30日

8K+ 閱讀量

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.