Передача нескольких параметров в контроллер в фреймворк Laravel 5
в моем приложении пользователь имеет возможность напомнить другому пользователю о приглашении на мероприятие. Для этого мне нужно передать как идентификаторы события, так и пользователя, которого нужно пригласить.
в моем файле маршрута, у меня есть:
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 AppHttpControllersEventsController::remindHelper()
Я уверен, что у меня есть ошибка форматирования в моем представлении, но я не смог поставить диагноз. Есть ли более эффективный способ передать несколько аргументов контроллеру?
3 ответов
когда вы определяете этот маршрут:
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-building',[$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');
}