Php 如何以最佳方式获得用户id?

Php 如何以最佳方式获得用户id?,php,laravel,laravel-5.5,Php,Laravel,Laravel 5.5,我现在通过POST请求从html表单获取数据。我的收件箱应用程序。我的代码工作,但代码不是最优的。没有loop foreach,我无法使用电子邮件获取用户id。如何在没有循环的情况下获取用户id 代码 公共功能发送消息(请求$Request) { 如果($request->isMethod('post')) { $to=$request->to; $from=Auth::user()->id; $subject=$request->subject; $message=$request->mess

我现在通过POST请求从html表单获取数据。我的收件箱应用程序。我的代码工作,但代码不是最优的。没有loop foreach,我无法使用电子邮件获取用户id。如何在没有循环的情况下获取用户id

代码
公共功能发送消息(请求$Request)
{
如果($request->isMethod('post'))
{
$to=$request->to;
$from=Auth::user()->id;
$subject=$request->subject;
$message=$request->message;
$to=User::where('email',$to)->get()->toArray();
foreach($至$value){
$to=$value['id'];
}
回音$to.“
”; echo$from.“
”; 回声$subject.“
”; 回显$message。“
”; 消息::创建( [ “主题”=>$subject, 'message'=>$message, 'from'=>$from, '至'=>$至 ] ); } }
使用
first()
方法:

User::where('email', $to)->first()->id;
value()
如果您只需要ID:

User::where('email', $to)->value('id');
解释了
first()
get()
之间的区别。

使用方法获取唯一对象

$to = User::where('email', $to)->first()->id;
使用
get()
必须选择集合中的第一个对象:

$to = User::where('email', $to)->get()[0]->id;
返回一个用户对象时返回一个用户对象

User::where('email',$email)->first()->id;

您可以通过获取当前已验证用户的id

Auth::id();
User::whereEmail('email')->first()->id;
Auth::id();