如何从 Laravel 5.2 中的另一个控制器调用控制器函数?

dol*_*lar -2 php api laravel laravel-5

我在 Laravel 5.2 中有 2 个控制器

1) Apiauth 控制器

   <?php

   namespace App\Http\Controllers;

   use Illuminate\Http\Request;

   use App\Http\Requests;
   use App\Api_auth;

   class Apiauth extends Controller
   {
       public function checkauth($reqauthkey)
       {
             $authkey=Api_auth::orderBy('id', 'desc')->first();


             if($authkey->authkey!=$reqauthkey)
            return response()->json(['response'=>'false','message'=>'Authentication Failed','code'=>403],403);  
        }

 }
Run Code Online (Sandbox Code Playgroud)

2) 移动注册控制器

        namespace App\Http\Controllers;


        use Illuminate\Http\Request;
        use App\Http\Controllers\Apiauth;
        use App\Http\Requests;
        use App\Mobile_registration;
        use App\Api_auth;

        use App\Http\Requests\CreateMobileRegistrationRequest;

        class MobileregistrationController extends Controller
        {

            public function index(Request $request)
            {

                App\Http\Controllers\Apiauth->checkauth($request->authkey);

                // $authkey=Api_auth::orderBy('id', 'desc')->first();


                // if($authkey->authkey!=$request->authkey)
                //     return response()->json(['response'=>'false','message'=>'Authentication Failed','code'=>403],403);    

                $mobileregistration=Mobile_registration::all();


                if($mobileregistration->isEmpty())
                    return response()->json(['response'=>'false','message'=>'No data found','code'=>404],404);
                else
                    return response()->json(['response'=>'true','data'=>$mobileregistration],200);
            }


            public function show($id,Request $request)
            {

                $authkey=Api_auth::orderBy('id', 'desc')->first();


                if($authkey->authkey!=$request->authkey)
                    return response()->json(['response'=>'false','message'=>'Authentication Failed','code'=>403],403);     

                $mobileregistration=Mobile_registration::find($id);

                if(!$mobileregistration)
                    return response()->json(['response'=>'false','message'=>'No data found','code'=>404],404);
                else
                    return response()->json(['response'=>'true','data'=>$mobileregistration],200);

            }

            public function store(CreateMobileRegistrationRequest $request)
            {
                $values =$request->only(['mobile_imei','mobile_number','application_type','version','isverified','reg_date_time','authkey']);

                $authkey=Api_auth::orderBy('id', 'desc')->first();


                if($authkey->authkey!=$request->authkey)
                    return response()->json(['response'=>'false','message'=>'Authentication Failed','code'=>403],403);   

                Mobile_registration::create($values);

                return response()->json(['response'=>'true','message'=>'Values Inserted','code'=>201],201);
            }

            public function update($id,CreateMobileRegistrationRequest $request)
            {
                $mobileregistration=Mobile_registration::find($id);

                if(!$mobileregistration)
                    return response()->json(['response'=>'false','message'=>'No matching data found for editing','code'=>404],404);

                $authkey=Api_auth::orderBy('id', 'desc')->first();


                if($authkey->authkey!=$request->authkey)
                    return response()->json(['response'=>'false','message'=>'Authentication Failed','code'=>403],403); 

                $mobileregistration->mobile_imei=$request->get('mobile_imei');
                $mobileregistration->mobile_number=$request->get('mobile_number');
                $mobileregistration->application_type=$request->get('application_type');
                $mobileregistration->version=$request->get('version');
                $mobileregistration->isverified=$request->get('isverified');
                $mobileregistration->reg_date_time=$request->get('reg_date_time');

                $mobileregistration->save();

                return response()->json(['response'=>'true','message'=>'Mobile Registration details updated successfully','code'=>200],200);


            }

            public function destroy($id,Request $request)
            {
                $mobileregistration=Mobile_registration::find($id);

                if(!$mobileregistration)
                    return response()->json(['response'=>'false','message'=>'No matching data found for deleting','code'=>404],404);

                $authkey=Api_auth::orderBy('id', 'desc')->first();


                if($authkey->authkey!=$request->authkey)
                    return response()->json(['response'=>'false','message'=>'Authentication Failed','code'=>403],403); 

                $mobileregistration->delete();

                return response()->json(['response'=>'true','message'=>'Provided details are deleted sucessfully','code'=>200],200);
            }
        }
Run Code Online (Sandbox Code Playgroud)

现在在 MobileregistrationController 中,对于每个我想调用这个函数的函数

     public function checkauth($reqauthkey){} 
Run Code Online (Sandbox Code Playgroud)

Apiauth 控制器

但是当我使用此代码调用此函数时,我收到了错误消息

    App\Http\Controllers\Apiauth->checkauth($request->authkey);
Run Code Online (Sandbox Code Playgroud)

错误信息

    FatalErrorException in MobileregistrationController.php line 20:
    Class 'App\Http\Controllers\App\Http\Controllers\Apiauth' not found
Run Code Online (Sandbox Code Playgroud)

我在 Stackoverflow 上搜索了很多答案,但没有一个解决方案适合我。有人帮我纠正这个。

小智 5

我有路线

Route::get('/test/index', 'TestController@index');
Run Code Online (Sandbox Code Playgroud)

带有函数 test() 的 Apiauth

<?php
namespace App\Http\Controllers;

class Apiauth extends Controller {

  public function test() {
   return "abc";
  }
}
Run Code Online (Sandbox Code Playgroud)

我有另一个控制器 TestController

<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Apiauth;

class TestController extends Controller {
  public function index() {
    $controller = new Apiauth;
    return $controller->test();
  }
}
Run Code Online (Sandbox Code Playgroud)

调用 url/test/index它 print abc。你应该试试我的回答并解决你的问题