在 Laravel 5 中将多个参数传递给控制器
Passing multiple parameters to controller in Laravel 5
在我的应用程序中,用户可以提醒另一个用户有关活动邀请的信息。为此,我需要同时传递活动的 ID 和要邀请的用户的 ID。
在我的路由文件中,我有:
Route::get('events/{id}/remind', [
'as' => 'remindHelper', 'uses' => 'EventsController@remindHelper']);
在我看来,我有:
{!!link_to_route('remindHelper', 'Remind User', $parameters = array($eventid = $event->id, $userid = $invitee->id) )!!}
在我的控制器中,我有:
public function remindHelper($eventid, $userid)
{
$event = Events::findOrFail($eventid);
$user = User::findOrFail($userid);
$invitees = $this->user->friendsOfMine;
$invited = $event->helpers;
$groups = $this->user->groupOwner()->get();
return view('events.invite_groups', compact('event', 'invitees', 'invited', 'groups'));
}
但是,当我到达那条路线时,收到以下错误:
Missing argument 2 for App\Http\Controllers\EventsController::remindHelper()
我确定我的观点存在格式错误,但我一直无法诊断它。有没有更有效的方法将多个参数传递给控制器?
当您定义这条路线时:
Route::get('events/{id}/remind', [
'as' => 'remindHelper', 'uses' => 'EventsController@remindHelper']);
你说的是单个 URI 参数将传递给该方法。
尝试传递两个参数,例如:
Route::get('events/{event}/remind/{user}', [
'as' => 'remindHelper', 'uses' => 'EventsController@remindHelper']);
查看:
route('remindHelper',['event'=>$eventId,'user'=>$userId]);
转到您的控制器并编写如下代码:
public function passData()
{
$comboCoder=['Bappy','Sanjid','Rana','Tuhin'];
$ffi=['Faisal','Sanjid','Babul','Quiyum','Tusar','Fahim'];
$classRoom=['Sanjid','Tamanna','Liza'];
return view('hyper.passData',compact('comboCoder','ffi','classRoom'));
}
/*
Again, in View part use:
(passData.blade.php)
*/
<u>Combocoder:</u>
@foreach($comboCoder as $c)
{{$c}}<br>
@endforeach
<u>FFI</u>
@foreach($ffi as $f)
{{$f}}<br>
@endforeach
<u>Class Room </u>
@foreach($classRoom as $cr)
{{$cr}}<br>
@endforeach
路线 :
Route::get('warden/building/{buildingId}/employee/{employeeId}',[
'uses'=>'WardenController@deleteWarden',
'as'=>'delete-warden'
]);
查看 :
<a href="{{route('delete-warden',[$building->id])}}"></a>
控制器:
public function deleteWarden($buildingId,$employeeId){
$building = Building::find($buildingId);
$building->employees()->detach($employeeId);
return redirect('warden/assign/'.$buildingId)->with('message','Warden Detached successfully');
}
Route::get('/details/{id}/{id1}/{id2}', 'HomeController@SearchDetails');
//pass data like the below code
<a href="{{url("/details/{$orga_list->dcode}/{$orga_list->dname}/{$GroupHead}")}}"
target="_blank" > Details </a>
//controller write like the below code
public function SearchDetails($id, $searchtext,$grp_searchtext)
{
// get data like the below code
$data['searchtext'] = $searchtext;
$data['grp_searchtext'] = $grp_searchtext;
$data['id_is'] = $id;
}
你是这样做的:
<a href="{{route('route.name',['param1'=>$variable1,'param2'=>$variable2])}}">Click Here</a>
在我的应用程序中,用户可以提醒另一个用户有关活动邀请的信息。为此,我需要同时传递活动的 ID 和要邀请的用户的 ID。
在我的路由文件中,我有:
Route::get('events/{id}/remind', [
'as' => 'remindHelper', 'uses' => 'EventsController@remindHelper']);
在我看来,我有:
{!!link_to_route('remindHelper', 'Remind User', $parameters = array($eventid = $event->id, $userid = $invitee->id) )!!}
在我的控制器中,我有:
public function remindHelper($eventid, $userid)
{
$event = Events::findOrFail($eventid);
$user = User::findOrFail($userid);
$invitees = $this->user->friendsOfMine;
$invited = $event->helpers;
$groups = $this->user->groupOwner()->get();
return view('events.invite_groups', compact('event', 'invitees', 'invited', 'groups'));
}
但是,当我到达那条路线时,收到以下错误:
Missing argument 2 for App\Http\Controllers\EventsController::remindHelper()
我确定我的观点存在格式错误,但我一直无法诊断它。有没有更有效的方法将多个参数传递给控制器?
当您定义这条路线时:
Route::get('events/{id}/remind', [
'as' => 'remindHelper', 'uses' => 'EventsController@remindHelper']);
你说的是单个 URI 参数将传递给该方法。
尝试传递两个参数,例如:
Route::get('events/{event}/remind/{user}', [
'as' => 'remindHelper', 'uses' => 'EventsController@remindHelper']);
查看:
route('remindHelper',['event'=>$eventId,'user'=>$userId]);
转到您的控制器并编写如下代码:
public function passData()
{
$comboCoder=['Bappy','Sanjid','Rana','Tuhin'];
$ffi=['Faisal','Sanjid','Babul','Quiyum','Tusar','Fahim'];
$classRoom=['Sanjid','Tamanna','Liza'];
return view('hyper.passData',compact('comboCoder','ffi','classRoom'));
}
/*
Again, in View part use:
(passData.blade.php)
*/
<u>Combocoder:</u>
@foreach($comboCoder as $c)
{{$c}}<br>
@endforeach
<u>FFI</u>
@foreach($ffi as $f)
{{$f}}<br>
@endforeach
<u>Class Room </u>
@foreach($classRoom as $cr)
{{$cr}}<br>
@endforeach
路线 :
Route::get('warden/building/{buildingId}/employee/{employeeId}',[
'uses'=>'WardenController@deleteWarden',
'as'=>'delete-warden'
]);
查看 :
<a href="{{route('delete-warden',[$building->id])}}"></a>
控制器:
public function deleteWarden($buildingId,$employeeId){
$building = Building::find($buildingId);
$building->employees()->detach($employeeId);
return redirect('warden/assign/'.$buildingId)->with('message','Warden Detached successfully');
}
Route::get('/details/{id}/{id1}/{id2}', 'HomeController@SearchDetails');
//pass data like the below code
<a href="{{url("/details/{$orga_list->dcode}/{$orga_list->dname}/{$GroupHead}")}}"
target="_blank" > Details </a>
//controller write like the below code
public function SearchDetails($id, $searchtext,$grp_searchtext)
{
// get data like the below code
$data['searchtext'] = $searchtext;
$data['grp_searchtext'] = $grp_searchtext;
$data['id_is'] = $id;
}
你是这样做的:
<a href="{{route('route.name',['param1'=>$variable1,'param2'=>$variable2])}}">Click Here</a>