2016-01-14 4 views
3

Я хочу создать метод перенаправления, который можно было бы вызывать из других методов. К сожалению, я не могу сделать это, как хочу (см. Источник ниже).Laravel 5 Перенаправление из другого метода

Я предлагаю решение, но я хочу перенаправить просто вызов метода, а не делать больше вещей.

Мое решение:

class FooController extends Controller 
{ 

    public function foo(Request $request) 
    { 
     if ($result = $this->__check($request)) { 
      return $result; 
     } 
     return view('foo'); 
    } 

    private function __ckeck(Request $request) 
    { 
     if (doSomething) { 
      return redirect('/'); 
     } 
     return false; 
    } 
} 

Что я хочу:

class FooController extends Controller 
{ 

    public function foo(Request $request) 
    { 
     $this->__check($request); 

     return view('foo'); 
    } 

    private function __ckeck(Request $request) 
    { 
     if (doSomething) { 
      // redirect source <--- what I want 
     } 
     return false; 
    } 
} 

ответ

0

Вы должны обращаться с перенаправлением там или возвращать ответ.

Лучше всего было бы использовать индивидуальный запрос, если вы хотите, чтобы все было раздельно.

Итак, после того как вы создадите новый запрос, вы можете просто проверить, что вы хотите в методе authorize.

/** 
* Determine if the user is authorized to make this request. 
* 
* @return bool 
*/ 
public function authorize() 
{ 
    if ($this->session('foo')) { 
     return true; 
    } 

    return false; 
} 
+1

Я спрашиваю о перенаправлении. Мне нужен метод вызова из других методов. – aleixfabra

+0

Извините, но в ларавеле нет такой вещи, вы должны вернуть ответ. –

0

Может быть, это то, что вы ищете

public function foo(Request $request) 
{ 
    return $this->check($request); 
} 

private function check(Request $request) 
{ 
    if (doSomething) 
    { 
     return Redirect::to('/dash'); // redirect 
    } 
    return Redirect::to('/'); 
}