xxxxxxxxxx
use Illuminate\Support\Facades\Artisan;
// ...
public function yourControllerMethod()
{
// Run the Artisan command
Artisan::call('your:artisan-command');
// You can also pass additional arguments or options to the command
Artisan::call('your:artisan-command', [
'argument' => 'value',
'--option' => 'value',
]);
// If you need to get the output of the command, you can use the `output()` method
$output = Artisan::output();
// Do something with the output
// Return a response or redirect if needed
}
xxxxxxxxxx
If you have simple job to do you can do it from route file.
For example you want to clear cache. In terminal it would be php artisan
cache:clear In route file that would be:
\Artisan::call('cache:clear');
xxxxxxxxxx
/*
|=======================================================
| Run Artisan commands in laravel controllers
|=======================================================
*/
public function home()
{
Artisan::call('cache:clear');
echo "Cache Cleared <br>";
Artisan::call('config:cache');
echo "config cache are cleared <br>";
Artisan::call('route:cache');
echo "routes cache are cleared <br>";
Artisan::call('optimize:clear');
echo "optimized cleared <br>";
Artisan::call('storage:link');
echo "storage linked <br>";
}
xxxxxxxxxx
<?php
Route::get('/foo', function () {
Artisan::queue('email:send', [
'user' => 1, '--queue' => 'default'
]);
//
});