Laravel 如何从集合中获取变量的值

Laravel 如何从集合中获取变量的值,laravel,Laravel,使用该代码,我将返回一个响应,如果用户未注册或已注册,如果用户已注册但尚未确认 我想从中返回一些东西,我不只是熟悉laravel的方法您的代码中有太多错误,我已经修复了它,这段代码将正常工作。我认为您需要学习更多的Laravel和PHP public function returnsTrueIfEmailIsVerified(Request $request) { // Gets the email $email = request("email")

使用该代码,我将返回一个响应,如果用户未注册或已注册,如果用户已注册但尚未确认


我想从中返回一些东西,我不只是熟悉laravel的方法

您的代码中有太多错误,我已经修复了它,这段代码将正常工作。我认为您需要学习更多的Laravel和PHP

   public function returnsTrueIfEmailIsVerified(Request $request)
    {
        // Gets the email
        $email = request("email"); //johndoe@example.com for example
        // Determine if zero or one ;
        $user  = User::where('email','=',$email)->get(); // 0 or 1  ;

        $userCount  = User::where('email','=',$email)->count(); // 0 or 1  ;

        $confirmedValue = $user->get('confirmed');


        $response ;

        if ( $user === 1 && $confirmedValue === true ) {
            $response = 'OK';
        }
        elseif ($user === 1 && $confirmedValue === false) {
            $response = 'Not Confirmed yet';
        }
        else { 
            $response = 'Not Registered yet';
        }
        return response()->json(200,$response);

    }
  • 不能将字符串作为json响应,json是键值对
  • User::where('email','=',$email)
    返回查询生成器不是0或1,使用
    count()
    方法
  • 您无法从多个项目中检索值,您必须将其添加到以下特定项目中
    $user->get()[0]['confirmed]
    ,或使用Laravel特殊方法
    $user->first()->confirmed

我尝试了你的代码,但没有得到正确的答案,我唯一不知道的是第一个命令,我可以使用它。我得到了我需要的。@TheBAST你说没有得到正确答案是什么意思,你能说得更具体一点吗,你从代码中得到了错误?还是得到了错误的回应?
public function returnsTrueIfEmailIsVerified(Request $request)
{
    $email = request("email");
    $user = User::where('email', '=', $email);

    $response = [
        'message' => ''
    ];

    if ($user->count() === 1) {
        $confirmedValue = $user->first()->confirmed;
        if ($confirmedValue) {
            $response['message'] = 'OK';
        } else {
            $response['message'] = 'Not Confirmed yet';
        }
    } else {
        $response['message'] = 'Not Registered yet';
    }

    return response()->json($response, 200);
}