laravel 4 cronjob触发控制器方法

时间:2016-04-25 16:10:32

标签: laravel cron

有关如何使用cronjob触发控制器方法的任何建议吗?

我创造了一个工匠命令

public function schedule(Schedulable $scheduler)
{

    return $scheduler->everyMinutes(1);

}

/**
 * Execute the console command.
 *
 * @return mixed
 */
public function fire()
{
    if (Auth::check())
    {
        $users = Auth::user();
        Log::info($users);
    }
}

而不是记录我想调用一个Controller方法。这可能吗?

2 个答案:

答案 0 :(得分:0)

更好的做法是创建traithelper并在控制器和工匠命令中使用它。

答案 1 :(得分:0)

您尝试从其他地方调用控制器方法这一事实表明您的控制器负有太多责任。理想情况下,您应该将功能移动到其他位置,以便控制器和作业都可以访问它。

但是,如果您不想这样做,您可以创建一个请求并使用路由器在内部发送它。

$request = Request::create('uri/of/controller', 'GET', $params);

return Route::dispatch($request)->getContent();

您也可以使用Container来获取控制器的实例并直接调用该方法。

App::make('YourController')->yourMethod($params);