【问题标题】:How to call a Request function from a controller to another controller in Laravel如何从一个控制器调用请求函数到 Laravel 中的另一个控制器
【发布时间】:2021-12-28 11:48:21
【问题描述】:

如何在 Laravel 中从一个控制器调用请求函数到另一个控制器

Controller1.php

public function get(){

$call = new Controller2();

$input = new Request();
$input->param1 = param1;
$input->param2 = param2;

$response = $call->index($input)

}

Controller2.php

public function Index(Request $request){
dd($request->all());
}

我收到了[] 作为回复。

【问题讨论】:

  • 嗨,为什么要从当前控制器调用另一个控制器?您应该将您的逻辑从 Controller2 移动到服务或其他东西,或者使用排队的作业来执行一些逻辑。
  • 你可以使用 Request 的 merge 方法来合并新的输入......但如前所述,从另一个控制器调用控制器通常不是一个好主意,通常是架构问题

标签: php laravel laravel-5


【解决方案1】:

在交响乐请求类中:

/**
     * Retrieve an input item from the request.
     *
     * @param  string|null  $key
     * @param  mixed  $default
     * @return mixed
     */
    public function input($key = null, $default = null)
    {
        return data_get(
            $this->getInputSource()->all() + $this->query->all(), $key, $default
        );
    }

你无法通过调用->input()获得这些变量

我建议不要将请求对象用于这些目的。

【讨论】:

    猜你喜欢
    • 2019-08-27
    • 1970-01-01
    • 2019-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-11
    • 1970-01-01
    相关资源
    最近更新 更多