У меня есть контроллер, который имеет метод. Код слишком длинный в методе, поэтому я поместил некоторые из кодов в другие частные методы, так что методы становятся понятными и не создают беспорядка из него.
Теперь, когда я получаю доступ к общедоступному методу из URL-адреса, в зависимости от параметров, он вызывает конкретный частный метод для обработки задания. После обработки задания я хочу перенаправить URL-адрес, но перенаправление не работает.
Образец моего кода выглядит следующим образом:
class SomeClass extends BaseController{ public function getMethodName() { //check the params and choose a private method to call $this->processJob(); } private function processJob() { //process the job and redirect at the end return Redirect::to('some/url'); } }
Проблема в том, что вышеперечисленное перенаправление не работает. Почему это? В Codeigniter, когда вы использовали redirect
он работает со спецификатором, из которого он вызван.
Если приведенный выше пример кода не подходит для этого, хотелось бы, чтобы кто-нибудь мог показать мне, как это сделать. Благодарю.
Вы должны вернуть возврат из $this->processJob()
.
class SomeClass extends BaseController{ public function getMethodName() { //check the params and choose a private method to call return $this->processJob(); } private function processJob() { //process the job and redirect at the end return Redirect::to('some/url'); } }
Вы можете попытаться перенаправить на другую страницу из своей публичной функции в соответствии с результатом вашей частной функции (я думаю, что это лучшее решение, чтобы сделать ваш код более понятным для человека). Но он может работать так, как вы его написали …