如何在laravel

时间:2017-03-19 06:45:13

标签: php laravel laravel-5.4

我想在CommonController中调用PostsController的函数。

PostsController位于Posting名称空间

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

1 个答案:

答案 0 :(得分:3)

第一个命名空间错误

namespace App\Http\Controllers\Posting;

第二个你可以像这样调用另一个控制器

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

这会有效,但在代码组织方面这很糟糕

您可以像这样扩展Controller

use App\Http\Controllers\CommonContoller;

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