Codey93
Codey93

Reputation: 129

Laravel, Guzzle - Check if Cookie is set

I wish to check if the cookie is set, when doing the bottom getUsername(). Can anyone help me with a quick fix for this? I've tried for hours without luck.

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Cookie;

class CookieController extends Controller 
{
    public function setCookie(\stdClass $request)
    {
        $minutes = 60;
        $response = new Response(view('panel.panel'));
        $response->withCookie(cookie('userInfo', $request, $minutes));
        return $response;
    }
    public function getCookie(){
        $val = cookie::get('userInfo');
        return $val;
    }

    public function getUsername(){
        $cookie = cookie::get('userInfo');
        return $cookie->message->username;
    }

    public function getShopID(){
        $cookie = cookie::get('ShopID');
        return $cookie->message->shopID;
    }
}
?>

Upvotes: 1

Views: 607

Answers (2)

louisfischer
louisfischer

Reputation: 2084

Try using the method hasCookie():

public function getUsername(Request $request)
{
    if ($request->hasCookie('userInfo')) {
        $cookie = $request->cookie('userInfo');
        return $cookie->message->username;
    }
}

Upvotes: 0

xmhafiz
xmhafiz

Reputation: 3538

You could use isset or compare with null

public function getUsername(){
    $cookie = cookie::get('userInfo');
    if ($cookie !== null) {
        // do something like set cookie
        // return username
    }

}

Upvotes: 1

Related Questions