2016-12-17 4 views
1

Meine Ansicht ist, wie folgt aus:Wie erhalten Parameter in Laravel 5.3?

<li class="{{ Request::is('users*') ? 'active' : '' }}"> 
    <a href="{!! route('users.index', 2016) !!}"> 
     <i class="fa fa-circle-o"></i> YEAR 2016 
    </a> 
</li> 
<li> 
    <a href="{!! route('users.index', 2017) !!}"> 
     <i class="fa fa-circle-o"></i> YEAR 2017 
    </a> 
</li> 

Wenn ich über den Link auf das Jahr 2016 schweben, wird die URL wie folgt sein:

localhost/mysystem/public/users?2016

Meine Routen \ web.php ist wie dies:

Route::get('users/index?{year}', 'UserController'); 

Route::resource('users', 'UserController'); 

Und mein Controller Benutzer ist wie folgt:

public function index(Request $request) 
{ 
    $year = $request->input('year'); 
    echo $year;die() 
} 

Es gibt existieren Fehler wie folgt aus:

UnexpectedValueException in Route.php line 646: Invalid route action: [App\Http\Controllers\UserController] 

Gibt es irgendwelche Leute, die mir helfen kann?

Antwort

1

Ihr Weg sollte sein:

Route::get('users/index/{year}', '[email protected]')->name('users.index.year'); 

Ihr Regler als:

public function index(Request $request, $year) 
{ 
    echo $year;die() 
} 

Dann können Sie es Ihrer Ansicht nach Verwendung:

{{ route('users.index.year', ['year' => 2016]) }} 
+0

Es gibt Fehler wie folgt: 'ErrorException in UserController.php Zeile 36: Fehlendes Argument 2 für App \ Http \ Controllers \ UserController :: index() ' –

+0

das gleiche. Es hat nicht funktioniert –

+0

Versuchen Sie, Ihre Ressource-Linie "Route :: Ressource ('Benutzer', 'UserController') auskommentieren;' und versuchen Sie es erneut, vielleicht verursacht es ein Problem. –

0

Sie erhalten es von Methode Argument

public function index(Request $request,$para_year) 
{ 
    $year = para_year; 
    echo $year;die() 
} 

und Sie Route sollte

Route::get('users/index/{year}', '[email protected]'); 
1

Pass Parameter in Route wie folgt sein:

Route::get('users/index/{year}', '[email protected]'); 

Ausblick:

<a href="{!! route('users.index', ['year' => 2016]) !!}"> 
    <i class="fa fa-circle-o"></i> YEAR 2016 
</a> 

Controller (erhalten als Argument innerhalb Controller-Methode):

public function index($year) 
{ 
    echo $year; 
    die(); 
} 

Oder - Wenn Sie einen Parameter zu übergeben, wie GET params Routen diese gerade tun:

Route::get('users/index', 'UserController'); 

und in Ihrem <a href="">:

<a href="{!! route('users.index', ['year' => 2016]) !!}"> 
    <i class="fa fa-circle-o"></i> YEAR 2016 
</a> 

Die Aussage: {!! route('users.index', ['year' => 2016]) !!} wird eine Route erstellen so: http://website.com/users/index?year=2016

und greifen Sie es in Controller mit request() Helfer wie dieser:

public function index() 
{ 
    $year = request()->get('year'); 
    echo $year; 
    die(); 
} 

Hoffe, das hilft!

+0

Scheint, dass ich deine Hilfe brauche. Schau dir das an: http://stackoverflow.com/questions/41788737/why-the-deleted-data-still-appear-in-the-interface –