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

Posted

技术标签:

【中文标题】laravel 4重定向到带有2个参数的路由【英文标题】:laravel 4 Redirect to route with 2 parameters 【发布时间】:2014-06-10 02:27:09 【问题描述】:

我目前正在尝试使用实现重定向

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('/');

重定向中的参数不起作用。 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'));    

【问题讨论】:

【参考方案1】:

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

这样的东西应该可以工作......

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

【讨论】:

【参考方案2】:

有两种方法

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

前:

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

【讨论】:

以上是关于laravel 4重定向到带有2个参数的路由的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Laravel 4 中将一个路由重定向到 HTTPS,将所有其他路由重定向到 HTTP?

Laravel 使用来自控制器的参数重定向路由

如何使用获取参数将 laravel (5.3) 路由重定向到其他路由

如何将没有参数的 Laravel 路由重定向到具有默认参数的控制器方法?

如何使 Laravel 5 重定向到没有哈希(#)的 Angular 路由?

React Router v4 - 使用不同的查询参数重定向到相同的路由