2015-10-08 6 views
1

У меня есть функция контроллера, которая должна быть перенаправлена ​​на маршрут с другой функцией, чтобы избежать избыточности кодов. можно ли перенаправить на другую функцию?Laravel 5 контроллер возвращает контроллер

Вот код:

public function index() 
{ 
    $x = Auth::user()->id; 

    $id = DB::table('requests')->where('id', $x)->lists('userid'); 

    if (!is_null($id)) { 
     $frnd = DB::table('users')->whereIn('id', $id)->get(); 

     if (!is_null($frnd)) { 
      return view('friendlist', compact('frnd')); 
     } else { 
      $frnd = null; 

      return view('friendlist', compact('frnd')); 
     } 
    } else { 
     $frnd = null; 
     return view('friendlist', compact('frnd')); 
    } 
} 

public function respond() 
{ 
    $frnds = new Friend; 

    $id = Auth::user()->id; 

    $friendid = Request::input('friendid'); 

    $frnds->id = $id; 

    $frnds->friendid = $friendid; 

    if (Input::get('accept')) { 
     $frnds->save(); 
    } 

    DB::table('requests')->where('id', $id)->where('userid', $friendid)   

    return // this is where i should redirect to page with function index() 
} 

ответ

1

Имя индекс маршрута в определении маршрутов как этот

Route::get('home', ['uses' => '[email protected]', 'as' => 'home']); 

Затем используйте метод перенаправления для перенаправления на этот маршрут:

return redirect()->route('home'); 

Для Дополнительная информация о переадресации использует официальные документы

http://laravel.com/docs/5.1/responses#redirects

0

Я не думаю, что это идеально, но кто-то предпочитает этот путь:

private function _index() 
{ 
    $x = Auth::user()->id; 

    $id = DB::table('requests')->where('id', $x)->lists('userid'); 

    if (!is_null($id)) { 
     $frnd = DB::table('users')->whereIn('id', $id)->get(); 

     if (!is_null($frnd)) { 
      return view('friendlist', compact('frnd')); 
     } else { 
      $frnd = null; 

      return view('friendlist', compact('frnd')); 
     } 
    } else { 
     $frnd = null; 
     return view('friendlist', compact('frnd')); 
    } 
} 

public function index() 
{ 
    $this->_index(); 
} 

public function respond() 
{ 
    $frnds = new Friend; 

    $id = Auth::user()->id; 

    $friendid = Request::input('friendid'); 

    $frnds->id = $id; 

    $frnds->friendid = $friendid; 

    if (Input::get('accept')) { 
     $frnds->save(); 
    } 

    DB::table('requests')->where('id', $id)->where('userid', $friendid)   

    $this->_index(); 
} 

частные функции для повторяющегося кода.

Смежные вопросы