How to Call a controller function in another controller Laravel

Created at 24-Aug-2022 , By samar

How to Call a controller function in another controller Laravel

In this session, we will try our hand at solving the "How to Call a controller function in another controller Laravel".

I have a user controller function `getUser()` and i want to call this controller function in home controller function. How can i call a controller function in another controller in Laravel.
  • Call a controller function from another controller in Laravel

    You can easily call a controller function using (new OtherController)->method() in another controller by importing controller class with use App\Http\Controllers\UserController; after namespace in controller.

    Syntax for calling controller method.

    $result = (new OtherController)->method();
    

    Example code:

    app\Http\Controllers\UserController.php

    <?php
    
    namespace App\Http\Controllers;
    
    use Illuminate\Http\Request;
    use App\Models\User;
    
    class UserController extends Controller
    {
        public function getUser(){
            return User::first();
        }
    }
    

    app\Http\Controllers\HomeController.php

    <?php
    
    namespace App\Http\Controllers;
    use Illuminate\Http\Request;
    use App\Http\Controllers\UserController;
    
    class HomeController extends Controller
    {
        public function getUserFromUserControllerMethod(){
            $result = (new UserController)->getUser();
            print_r($result);
        }
    }
    

    routes\web.php

    Route::get('/get-user', [HomeController::class, 'getUserFromUserControllerMethod']);
    

    Output:

    App\Models\User Object ( [fillable:protected] => Array ( [0] => name [1] => email [2] => password [3] => username ) [hidden:protected] => Array ( [0] => password [1] => remember_token ) [casts:protected] => Array ( [email_verified_at] => datetime ) [connection:protected] => mysql [table:protected] => users [primaryKey:protected] => id [keyType:protected] => int [incrementing] => 1 [with:protected] => Array ( ) [withCount:protected] => Array ( ) [preventsLazyLoading] => [perPage:protected] => 15 [exists] => 1 [wasRecentlyCreated] => [escapeWhenCastingToString:protected] => [attributes:protected] => Array ( [id] => 1 [name] => Mr. Jay Price Jr. [email] => ziemann.eldora@example.net [email_verified_at] => 2022-03-03 11:01:39 [password] => $2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi [remember_token] => q0i9UhitUF [username] => [created_at] => 2022-03-03 11:01:39 [updated_at] => 2022-03-03 11:01:39 ) [original:protected] => Array ( [id] => 1 [name] => Mr. Jay Price Jr. [email] => ziemann.eldora@example.net [email_verified_at] => 2022-03-03 11:01:39 [password] => $2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi [remember_token] => q0i9UhitUF [username] => [created_at] => 2022-03-03 11:01:39 [updated_at] => 2022-03-03 11:01:39 ) [changes:protected] => Array ( ) [classCastCache:protected] => Array ( ) [attributeCastCache:protected] => Array ( ) [dates:protected] => Array ( ) [dateFormat:protected] => [appends:protected] => Array ( ) [dispatchesEvents:protected] => Array ( ) [observables:protected] => Array ( ) [relations:protected] => Array ( ) [touches:protected] => Array ( ) [timestamps] => 1 [visible:protected] => Array ( ) [guarded:protected] => Array ( [0] => * ) [rememberTokenName:protected] => remember_token [accessToken:protected] => )
  • Call controller from another controller

    $users = app('App\Http\Controllers\UserController')->getUser();

Back to code snippet queries related laravel

If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.

Buy Me A Coffee

Don't forget to share this article! Help us spread the word by clicking the share button below.

We appreciate your support and are committed to providing you valuable and informative content.

We are thankful for your never ending support.