2014-04-24 3 views
6

Attualmente sto cercando di implementare i reindirizzamenti utilizzandolaravel 4 reindirizzamento al percorso con 2 parametri

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

I parametri di reindirizzamento non funzionano. Store è un metodo POST in ForumController. I parametri che Store ha ricevuto sono OK perché non ho problemi con la validazione 'if'. Ho potuto creato un forum e salvarlo, ma quando provo a riorientare ho questo errore

Trying to get property of non-object 

E users.courses.forums.index è il nome del mio URI con azione ForumController @ indice. Questo ultimo metodo ha bisogno di 2 parametri ($ username, $ courseid). Ti piace questa

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

risposta

7

Perché non utilizzare Redirect::route() direttamente e superare le variabili come un array?

Qualcosa del genere dovrebbe funzionare ...

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

due modi

1] è possibile utilizzare Redirect::route() come risposta @msturdy

EX:

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

2] puoi anche usare Redirect::action()

EX:

return Redirect::action('[email protected]',array(Auth::user()->username, $course->id)); 

Come lavarel Documentation for redirects