2017-03-19 81 views
1

我想在PostsController中調用CommonController的函數。如何調用laravel中不同名稱空間中的控制器中的控制器方法

PostsController在發佈命名空​​間

PostController: App\Http\Controllers\Posting\PostsController 
CommonController: App\Http\Controllers\CommonController 

我想這個代碼,但它並沒有PostingController工作,這是從我的PostingController

namespace App\Http\Controllers\Employer; 
use App\Http\Controllers\CommonController; 

class PostsController extends Controller 
{ 
    public function myFunction(Request $request, $id){ 
     $commonControllerObj = new CommonContoller; 
     $result = $commonControllerObj->commonCallingFunction($id); 
    } 
} 

小的代碼,但它沒有工作,其給出錯誤

Class 'App\Http\Controllers\Posting\CommonContoller' not found 
+0

你可以更新你的控制器目錄和'CommonController '文件內容到你的問題中? –

回答

3

第一個命名空間錯了

namespace App\Http\Controllers\Posting; 

第二,你可以調用另一個控制器這樣

app('App\Http\Controllers\CommonController')->commonCallingFunction();

這是可行的,但是這是不好的代碼組織方面

您可以擴展控制器這樣

use App\Http\Controllers\CommonContoller; 

class PostsController extends CommonContoller 
{ 
    public function myFunction(Request $request, $id){ 
     $result = $this->commonCallingFunction($id); 
    } 
} 
相關問題