2017-03-19 46 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); 
    } 
} 
相关问题