2016-04-04 6 views
5

मैं कोशिश कर रहा हूँ केवल कुछ IP पतों रजिस्टर मार्ग का उपयोग करने की अनुमति देते हैं Laravel में एक उपयोगकर्ता रजिस्टर करने के लिए अनुमति देते हैं, लेकिन मैं प्रकार त्रुटि हो रही है:केवल कुछ IP पतों 5.2

Argument 1 passed to App\Http\Controllers\Auth\AuthController::showRegistrationForm() must be an instance of Illuminate\Http\Request, none given, called in directory\vendor\laravel\framework\src\Illuminate\Foundation\Auth\RegistersUsers.php on line 19

यहाँ मेरी showRegistrationForm है AuthController में विधि:

public function showRegistrationForm(Request $request) { 
    $ip = $request->ip(); 

    if ($ip == "148.124.0.1") { 
     return redirect("register"); 
    } else { 
     return redirect("home"); 
    } 
} 

क्या किसी को पता है कि मैं यह कैसे पूरा होगा?

+0

में मदद करता है कि आप क्या मिलता है जब आप डीडी ($ अनुरोध)? – Frisbetarian

+0

अपने स्थानीय पर्यावरण –

+0

से यह परीक्षण कर रहे हैं @ maytham-ɯɐɥʇʎɐɯ हाँ मैं कर रहा हूँ। –

उत्तर

18

इसके बजाय नियंत्रक में जाँच इस तरह

php artisan make:middleware IpMiddleware 

कोड की जाँच करें

<?php 

namespace App\Http\Middleware; 

use Closure; 

class IpMiddleware 
{ 

    public function handle($request, Closure $next) 
    { 
     if ($request->ip() != "192.168.0.155") { 
     // here insted checking single ip address we can do collection of ip 
     //address in constant file and check with in_array function 
      return redirect('home'); 
     } 

     return $next($request); 
    } 

} 

फिर अपने app/Http/Kernel.php वर्ग के $ middleware संपत्ति में नए मिडलवेयर वर्ग जोड़ें।

protected $routeMiddleware = [ 
    'auth' => \App\Http\Middleware\Authenticate::class, 
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 
    'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 
    'ipcheck' => \App\Http\Middleware\Ip::class, 
]; 

तो मार्गों के लिए middelware लागू

Route::get('/', ['middleware' => ['ipcheck'], function() { 
    // your routes here 
}]); 

उम्मीद यह आप

+0

धन्यवाद @pramod kadam, मैं इस दृष्टिकोण को आजमाउंगा। –

+0

धन्यवाद .. सिर्फ इस में जोड़ने के लिए, यदि आप मेरे जैसे एक सार्वजनिक भंडार है, यह '.env' उपयोग करने के लिए \ मिडिलवेयर \ आईपी कि आईपी पते ... –

+0

' 'ipcheck' => \ अनुप्रयोग \ Http स्टोर करने के लिए बेहतर है :: कक्षा', 'ipcheck' => \ App \ Http \ Middleware \ IpMiddleware :: class' होना चाहिए – Paddy

संबंधित मुद्दे