使用 eloquent 在 LARAVEL 中检索单行

retrieve single row in LARAVELusing eloquent

我正在使用 laravel 5.1 并希望在数据库中检索单行然后对其进行操作。

我当前的密码是

$profiles = Profile::where('user_id', $this->user->user_id)
->where('profile_code', $this->user->profile_code)
->get();

foreach($profiles as $profile ){
$data['address'] = $profile->address;
}

为什么我不能这样做?

$profiles = Profile::where('user_id', $this->user->user_id)
->where('profile_code', $this->user->profile_code)
->get();

$data['address'] = $profiles->address;

我是不是用错了功能? 提前致谢。

试试这个:

$data['address'] = $profiles[0]->address;

当您使用 get() 时,它 return 是一个 Std class 对象数组。

除了检索给定 table 的所有记录外,您还可以使用 first 检索单个记录。这些方法 return 不是 return 模型集合,而是单个模型实例:

// Retrieve the first model matching the query constraints...
$flight = App\Flight::where('active', 1)->first();

laravel 5.8

从个人资料中检索单行/单列

如果您只需要从数据库中检索一行 table,您可以使用 first() 方法。此方法将 return 单个 stdClass 对象:

$Profile = DB::table('Profiles')->where('user_id', $this->user->user_id)
->where('profile_code', $this->user->profile_code)->first();

如果您甚至不需要整行,您可以使用 value() 方法从记录中提取单个值。这个方法会直接return列的值:

$address = DB::table('Profiles')->where('user_id', $this->user->user_id)
->where('profile_code', $this->user->profile_code)->value('address');