Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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 ?

like image 975
MajAfy Avatar asked Oct 29 '25 17:10

MajAfy


2 Answers

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

like image 120
ub3rst4r Avatar answered Oct 31 '25 06:10

ub3rst4r


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
    }
}
like image 38
Scofield Avatar answered Oct 31 '25 07:10

Scofield