Melaku Minas Kasaye
Melaku Minas Kasaye

Reputation: 658

Laravel Modular Request to a different Controller

I am using a github project named mnabialek/laravel-modular. The package works fine but I cant pass requests to a different controller in diffrent module. How can I do that.

TestModule Controller

<?php

namespace App\Modules\TestModule\Http\Controllers;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Http\Response;
use App\Modules\TestModule\Http\Requests\TestModuleRequest;
use App\Modules\Admin\Http\Requests\AdminRequest;
use App\Modules\TestModule\Repositories\TestModuleRepository;
use App\Modules\TestModule\Services\TestModuleService;

class TestModuleController extends Controller
{
    /**
     * @var TestModuleRepository
     */
    protected $repo;

    /**
     * @var TestModuleService
     */
    protected $service;

    /**
     * TestModuleController constructor.
     *
     * @param TestModuleRepository $repo
     * @param TestModuleService $service
     */
    public function __construct(TestModuleRepository $repo, TestModuleService $service)
    {
        $this->repo = $repo;
        $this->service = $service;
    }

    /**
     * Display a listing of the resource.
     *
     * @return Response
     */
    public function index()
    {
        //
        //echo "Here you are";
        //$data["data"] = "Here you are";

        //return view("welcome")->with($data);
        $working = "Its Working";
        $message = App::make("App\\Modules\\Admin\\Http\\Controllers\\AdminController")->create($working);

    }

    /**
     * Show the form for creating a new resource.
     *
     * @return Response
     */

}

AdminController.php

<?php

namespace App\Modules\Admin\Http\Controllers;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Http\Response;
use App\Modules\Admin\Http\Requests\AdminRequest;
use App\Modules\Admin\Repositories\AdminRepository;
use App\Modules\Admin\Services\AdminService;

class AdminController extends Controller
{
    /**
     * @var AdminRepository
     */
    protected $repo;

    /**
     * @var AdminService
     */
    protected $service;

    /**
     * AdminController constructor.
     *
     * @param AdminRepository $repo
     * @param AdminService $service
     */
    public function __construct(AdminRepository $repo, AdminService $service)
    {
        $this->repo = $repo;
        $this->service = $service;
    }

    /**
     * Display a listing of the resource.
     *
     * @return Response
     */
    public function index()
    {
        //
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return Response
     */
    public function create($working)
    {

        die(print_r($working));
        //
    }


}

Here is the error I am getting.

Class 'App\Modules\TestModule\Http\Controllers\App' not found

Upvotes: 2

Views: 705

Answers (1)

mega6382
mega6382

Reputation: 9396

Try the following:

$message = Illuminate\Support\Facades\App::make("App\\Modules\\Admin\\Http\\Controllers\\AdminController")->create($working);

As App does not exist in the current namespace, you have to call it from where it is defined.

Upvotes: 1

Related Questions