Class Laravel在另一个控制器中使用一个控制器

Class Laravel在另一个控制器中使用一个控制器,class,laravel,controller,Class,Laravel,Controller,我想在另一个控制器中使用来自1个控制器的数据,如下所示 class CompanyController extends Controller { public function getCompaniesForUser() { $companies = $this->company->get(); return $companies; // This does work good and returns the values }

我想在另一个控制器中使用来自1个控制器的数据,如下所示

class CompanyController extends Controller
{
    public function getCompaniesForUser()
    {
        $companies = $this->company->get();

        return $companies; // This does work good and returns the values
    }
}



class UserController extends Controller
{
    public function test()
    {
        $companies = $company->getCompaniesForUser();

        return $companies; 
    }
}

但是如何访问$company->getcompanysforuser;在用户类中?

您可以这样做:

在laravel 4.2中

App::make'CompanyController'->getCompaniesForUser

在拉威尔5号

\App::make'App\Http\Controllers\DocControllerCompanyController'->getCompaniesForUser

但我建议你读一下这个答案


使用存储库是一种更好的方法

不使用这种方法,而是创建一个存储库并进行注入并检索数据。$id=\App::make'App\Http\Controllers\UserTypeController'->test;这确实管用。。但我认为应该有一个更明智的选择。。不使用存储库。这样做:$userTypeCtrlObj=\App::make'App\Http\Controllers\UserTypeController'$id=$userTypeCtrlObj->test;我想会更好。