2015-08-11 5 views
0

им с помощью Laravel 5.Как вызвать функцию контроллера в другой контроллер в Laravel 5

Мне нужно вызвать функцию контроллера, но это должно быть сделано в другой контроллер.

я не знаю, как это сделать

public function examplefunction(){ 

    //stuff 

} 

И у меня есть маршрут для этой функции, поэтому при

public function otherfunctioninothercontroller(){ 
// I need examplefunction here 
} 

, как я могу это сделать?

+0

Если это так, вы должны, вероятно, подумать об извлечении функции из того места, где она должна быть, например, в помощники или модели, если это применимо. – yangqi

+0

Вы не должны вызывать метод контроллера из другого метода контроллера. Это чистый знак, который вам необходимо изменить. –

+0

Помогает ли это? http://stackoverflow.com/questions/17034616/laravel-load-method-in-another-controller-without-changing-the-url –

ответ

2

Если они не находятся в одной папке, поместите use namespace\to\ExampleClass; поверх вашего файла, тогда вы сможете создать экземпляр своего контроллера.

1

Предположим, у меня есть Controller1 и Controller2. Я хочу вызвать функцию Controller1 из функции, помещенной в Controller2.

// Controller1.php 
class Controller1 { 
    public static function f1() 
    { 

    } 
} 

А на другой контроллер:

// Controller2.php 
use App\Http\Controllers\Controller1; 

class Controller2 { 
    public function f2() 
    { 
     return Controller1::f1(); 
    } 
} 

Очки следует отметить:

  1. f1() объявлена ​​статическая
2

1) Первый способ

use App\Http\Controllers\OtherController; 

class TestController extends Controller 
{ 
    public function index() 
    { 
     //Calling a method that is from the OtherController 
     $result = (new OtherController)->method(); 
    } 
} 

2) Second way 

app('App\Http\Controllers\OtherController')->method(); 

Both way you can get another controller function. 
Смежные вопросы