2013-11-18 5 views
1

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

class SomeController extends BaseController 
{ 
    function doSomething() 
    { 
     $this->doSomethingExtra(); 
    } 

    function doSomethingExtra() 
    { 
     return "Something Extra Done"; 
    } 
} 

И давайте скажем, должны маршрут определяется как так

Route::get('main/dashboard','[email protected]'); 

второй метод, названный из первых никогда не возвращает строку «Something Extra Done» в браузере. infact возвращает отрицательный ответ 200. Однако, похоже, это работает, когда вы возвращаете ответ от doSomething(), как обычно. Кто-нибудь знает, почему так поступает? есть ли в любом случае разбить логику контроллера на несколько методов, которые фактически возвращают ответы клиенту?

ответ

5

Измените это

$this->doSomethingExtra(); 

к этому.

return $this->doSomethingExtra(); 
+0

Вы, сэр, заслуживаете пива! Спасибо, куча – shanks

+1

Я бы хотел добавить это не имеет ничего общего с контроллерами Laravel. Это предполагаемое поведение PHP. – user1669496

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