laravel 4重定向到2个参数的路由

时间:2014-04-24 16:50:10

标签: php laravel routing laravel-4

我目前正在尝试使用

实现重定向
public function store($username,$courseId)
{       
        if (Auth::user()->username == $username && Auth::user()->courses()->where('id', '=', $courseId)->first() != null){
        $course = Course::find($courseId);
        $forum = new Forum();
        $forum->description = Input::get('description');
        $forum->course_id   = Input::get('course_id');
        $forum->save();
        return Redirect::to(route('users.courses.forums.index',Auth::user()->username,$course->id));
        }
    return Redirect::to('/');
}

Redirect中的参数无效。 Store是ForumController中的POST方法。 Store收到的参数是正常的,因为我没有验证'if'的问题。我可以创建一个论坛并保存它,但是当我尝试重定向时,我有这个错误

Trying to get property of non-object

users.courses.forums.index是带有Action ForumController @ index的URI的名称。最后一个方法需要2个参数($ username,$ courseid)。喜欢这个

public function index($username,$courseId)
{       
        $course = Course::find($courseId);
        $forum = DB::table('forums')->where('course_id',$course->id)->get();
        return View::make('forums.index',compact('course','forum'));    
}

2 个答案:

答案 0 :(得分:7)

为什么不直接使用Redirect::route()并将变量作为数组传递?

这样的事情应该有用......

    return Redirect::route('users.courses.forums.index', 
                            array(Auth::user()->username, $course->id));

答案 1 :(得分:3)

有两种方式

1]您可以像@msturdy回答一样使用Redirect::route()

EX:

return Redirect::route('users.courses.forums.index',array(Auth::user()->username, $course->id));

2]您也可以使用Redirect::action()

<强> EX

return Redirect::action('ForumController@index',array(Auth::user()->username, $course->id));

lavarel Documentation for redirects