Home > Enterprise >  Laravel7.x Commands: how to route to a url from command file's handle() method?
Laravel7.x Commands: how to route to a url from command file's handle() method?

Time:04-03

How to route to another url with a parameter from laravel's app/console/commands/myCommand.php's handler() method?

I want to route to another url/page/route with a parameter from handle() method of custom made command file which(route) later will call a controller and that parameter passed by handle() via route() will be handle() there in controller.

app/console/commands/myCommand.php

public function handle()
    {
        $sale_days = SaleDay::latest()->first();
        Log::info('test command file');

        $latest_date = $sale_days->date;
        // $request = Request::create('/game/end/day/'.$latest_date, 'get');
        // '<a href=' . route('game.endday', $latest_date) . '></a>';
        // return $request;
        return redirect()->to('game.endday', $latest_date);
    }
web.php

    Route::get('/game/end/day/{date}', 'SaleDayController@endday')->name('game.endday');
controller 

public function endday($date) {

    // $date = \Artisan::call('auto_day:close');
    Log::info("command endday module in saledaycontroller");
    $new_Date=Carbon::create($date);
    $prev_sale_day=$this->daySaleService->endDay($date);
    
    $new_sale_day=$this->daySaleService->firstOrCreate($new_Date->addDays(1));
    $this->daySaleService->changeCurrentDay($new_sale_day->id);
    $this->daySaleService->shiftDayGameSales($new_sale_day->id,$prev_sale_day->id);
    Log::info("command endday module in saledaycontroller ENDDDDD");

    return redirect()->route('game.sale');
}

the handle function is not working properly, How can I route from handle() method with a parameter

CodePudding user response:

Maybe you can try this

app()->make(\Illuminate\Contracts\Http\Kernel::class)->handle(YourRequest);

CodePudding user response:

This is a terrible idea. You would be better served either abstracting the code in your controller to the service and then calling that service in both the command and the controller.

Or alternatively trigger an event in the controller and command, and have a listener for that event that executes your logic.

  • Related