Skip to content

Instantly share code, notes, and snippets.

@nasirkhan
Last active March 31, 2023 04:11
Show Gist options
  • Save nasirkhan/809eee36875dc7c1935bc4289be214c6 to your computer and use it in GitHub Desktop.
Save nasirkhan/809eee36875dc7c1935bc4289be214c6 to your computer and use it in GitHub Desktop.
Call Laravel Controller methods via command line
<?php
php artisan tinker
$controller = app()->make('App\Http\Controllers\MyController');
app()->call([$controller, 'myMethodName'], []);
//the last [] in the app()->call() can hold arguments such as [user_id] => 10 etc'
@semiherdogan
Copy link

I am using this way to add request parameters and call controller.

  1. add parameters
app()
  ->make('Illuminate\Http\Request')
  ->merge([
    'search' => 'hello',
  ]);
  1. call controller
$controller = app()->make('App\Http\Controllers\SearchController');
app()->call([$controller, 'index']);

-- Class

class SearchController
{
    public function index(Request $request)
    {
        return $request->all();
        // returns ['search' => 'hello']
    }
}

@epicsagas
Copy link

What about this?

$request = (new \Illuminate\Http\Request)->replace(['foo' => 'bar'])
$response = (new App\Http\Controller\SearchController)->foo($request);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment