Laravel7.x 命令:如何从命令文件的 handle() 方法路由到 url?

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

如何使用来自 laravel 的 app/console/commands/myCommand.php's handler() 方法的参数路由到另一个 url?

我想使用来自自定义命令文件的 handle() 方法的参数路由到另一个 url/page/route,该参数(路由)稍后将调用控制器,并且该参数由 handle() 通过 route() 传递控制器中将有 handle()。

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');
}

handle 函数无法正常工作,如何从带参数的 handle() 方法路由

也许你可以试试这个

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

这是个糟糕的主意。您最好将控制器中的代码抽象为服务,然后在命令和控制器中调用该服务。

或者在控制器和命令中触发一个事件,并为执行您的逻辑的事件设置一个侦听器。