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 ?
Replace $request->getClientIp() with request()->getClientIp()
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
    }
}
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With