2016-11-08 4 views
0

Предположим, мы хотим перенаправить пользователя на страницу формы с некоторыми ошибками после отправки. У меня есть этот метод в моем контроллере.Перенаправление с использованием метода PHP-метода?

return redirect('create')->withErrors($errors)->withInputs($inputs); 

Теперь у меня есть вспомогательная функция с именем redirect, которая возвращает новый объект Redirect.

function redirect($fileName) 
{ 
return new Redirect($fileName); 
} 

и вот sturcture редиректа класса

class Redirect 
{ 

    public function __construct($fileName) 
    { 
    header("Location: " . $fileName); 

    return $this; 
    } 


    public function withErros($errors) 
    { 
    session_start(); 
    $_SESSION['errors'] = $errors; 

    return $this; 
    } 



    public function withInputs($inputs) 
    { 
    session_start(); 
    $_SESSION('inputs') = $inputs; 

    return $this; 
    } 
} 

Первый метод цепочки (withErrors) работает правильно, и я могу показать ошибки, на мой взгляд. Но второй (withInputs) никогда не запускается. Я думаю, что это из-за функции заголовка в PHP. Может кто-нибудь мне помочь, пожалуйста?

+0

Тогда это '$ _SESSION ['input']' –

+0

'withErros' должно быть' withErrors'. – Barmar

+0

Нет, это была опечатка, когда я набрал ее здесь. –

ответ

1
class Redirect 
{ 
    protected $filename; 
    public function __construct($fileName) 
    { 
     session_start(); 
     $this->filename=$filename; 
    } 
    public function __destruct() 
    { 
     $this->redirect(); 
    } 
    public function withErros($errors) 
    { 
     $_SESSION['errors'] = $errors; 
     return $this; 
    } 
    public function withInputs($inputs) 
    { 
     $_SESSION('inputs') = $inputs; 
     return $this; 
    } 
    public function redirect(){ 
     header("Location: " . $this->filename); 
     exit; 
    } 
} 

Это может быть решение.

+0

спасибо. –

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