在Laravel 5中将多个参数传递给控制器 [英] Passing multiple parameters to controller in Laravel 5

查看:448
本文介绍了在Laravel 5中将多个参数传递给控制器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的应用程序中,用户可以提醒其他用户有关事件邀请的信息.为此,我需要传递事件的ID和要邀请的用户的ID.

In my application, a user has the ability to remind another user about an event invitation. To do that, I need to pass both the IDs of the event, and of the user to be invited.

在我的路线文件中,我有:

In my route file, I have:

Route::get('events/{id}/remind', [
'as' => 'remindHelper', 'uses' => 'EventsController@remindHelper']);

我认为,我有:

{!!link_to_route('remindHelper', 'Remind User', $parameters = array($eventid = $event->id, $userid = $invitee->id) )!!}

在我的控制器中,我有:

In my controller, I have:

    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'));
}

但是,当我沿着那条路线行驶时,会收到以下错误消息:

However, when I hit that route, I receive the following error:

Missing argument 2 for App\Http\Controllers\EventsController::remindHelper()

我确定我的视图中存在格式错误,但是我无法对其进行诊断.有没有更有效的方式将多个参数传递给控制器​​?

I'm sure I have a formatting error in my view, but I've been unable to diagnose it. Is there a more efficient way to pass multiple arguments to a controller?

推荐答案

定义此路线时:

Route::get('events/{id}/remind', [
'as' => 'remindHelper', 'uses' => 'EventsController@remindHelper']);

您说的是将一个URI参数传递给该方法.

You are saying that a single URI argument will be passed to the method.

尝试传递两个参数,例如:

Try passing the two arguments, like:

Route::get('events/{event}/remind/{user}', [
'as' => 'remindHelper', 'uses' => 'EventsController@remindHelper']);

查看:

route('remindHelper',['event'=>$eventId,'user'=>$userId]);

这篇关于在Laravel 5中将多个参数传递给控制器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆