user11170112
user11170112

Reputation:

I get a array return in get() in select laravel 5.6

When I run this:

 $User_data = User::where('email', '=', $email)
            ->leftJoin('secutitequestion', function($join) {
                $join->on('users.id', '=', 'secutitequestion.user_id');
            })
            ->select('secutitequestion.securite_question1'
                ,'secutitequestion.securite_question2'
                ,'secutitequestion.securite_question3'
            ,'secutitequestion.user_id')
            ->get();

I get this result:

{
    "success": true,
    "token": null,
    "user": [
        {
            "securite_question1": "what is your dream",
            "securite_question2": "other dream?",
            "securite_question3": "any other dream?",
            "user_id": 32
        }
    ]
}

But I want it like this:

{
    "success": true,
    "token": null,
    "user": {
        "securite_question1": "what is your dream",
        "securite_question2": "other dream?",
        "securite_question3": "any other dream?",
        "user_id": 32
    }
}

Upvotes: 1

Views: 70

Answers (1)

pr1nc3
pr1nc3

Reputation: 8338

 $User_data = User::where('email', '=', $email)
            ->leftJoin('secutitequestion', function($join) {
                $join->on('users.id', '=', 'secutitequestion.user_id');
            })
            ->select('secutitequestion.securite_question1'
                ,'secutitequestion.securite_question2'
                ,'secutitequestion.securite_question3'
            ,'secutitequestion.user_id')
            ->first();  //<-- this is the change

This will solve your problem. It will return 1 single dimensional array

Upvotes: 4

Related Questions