MajAfy
MajAfy

Reputation: 3097

Use $request in view composer

I trying to write a view composer,

class CountryCodeComposer
{

    function compose($view)
    {
         $code = substr(file_get_contents('http://ipinfo.io/' . $request->getClientIp() . '/country'), 0, 2);
       $view->with('code', $code);
    }
}

but this code show error Undefined variable: request,

How can I pass $request to compose method ?

Upvotes: 4

Views: 3915

Answers (2)

Scofield
Scofield

Reputation: 4745

If someone is looking for an alternative of global request() helper function. Here is an example:

<?php

namespace App\Http\ViewComposers;

use Illuminate\View\View;

/**
 * Connect Http Request class
 */
use Illuminate\Http\Request;

class ExampleComposer
{   
    private $request;

    /**
     * Pass $request
     */
    public function __construct(Request $request)
    {
       $this->request = $request;
    }

    public function compose(View $view)
    {
        // use $this->request
    }
}

Upvotes: 7

SameOldNick
SameOldNick

Reputation: 2457

Replace $request->getClientIp() with request()->getClientIp()

Upvotes: 8

Related Questions