【问题标题】:Send request parameter from console commands laravel从控制台命令 laravel 发送请求参数
【发布时间】:2018-02-26 03:51:52
【问题描述】:

如何在 laravel 5.1 中通过控制台命令发送请求?我需要将 API 请求传递给同一文件夹项目中的控制器,我的第一次尝试是使用 guzzle:

$gClient =  new \GuzzleHttp\Client(['base_uri' => env('URL_AUTO_CONFIRM_PAYMENT')]);

$res = $gClient->post('api/payment/inquiries',
                            [
                                'headers'=> [
                                    'Content-Type' => 'application/json',
                                    'Accept' => 'application/json'
                                ],
                                'json'=>[
                                    'payment_method' => 'transfer',
                                    'payment_channel' => 'bca',
                                    'account_number' => $row->parameter['accountNo'],
                                    'invoice_id' => $row->parameter['paymentInvoice'],
                                    'amount' => (int)$row->parameter['totalCommission'],
                                    'currency_code' => 'IDR',
                                    'description' => 'Testing'
                                ],
                                'http_errors' => false
                            ]
                    );

但我认为它不好,因为在同一个文件夹项目中,我可以直接调用控制器,但问题是,我的控制器已设置为只接收 $request 而不是参数(my_controller(Request $request))。 那么,我该如何处理呢?使用 guzzle 可以吗?还是我应该使用另一种选择? 任何建议将不胜感激。 谢谢

【问题讨论】:

    标签: php rest laravel-5 guzzle


    【解决方案1】:

    创建一个request instance 并将其传递给特定的控制器方法。

    use Illuminate\Http\Request;
    
    $request = new Request(
      [
        'payment_method' => 'transfer',
        'payment_channel' => 'bca',
        'account_number' => $row->parameter['accountNo'],
        'invoice_id' => $row->parameter['paymentInvoice'],
        'amount' => (int)$row->parameter['totalCommission'],
        'currency_code' => 'IDR',
        'description' => 'Testing'
      ],
      [],
      [], 
      [],
      [],
      ['CONTENT_TYPE' => 'application/json']
    );
    
    $response = $controller->edit($request);
    

    【讨论】:

    • 它导致了 Undefined index: SERVER_NAME ,它是在我的控制器中导致 $_SERVER['SERVER_NAME'] 的。
    • Okk 自己解决了 $_SERVER['SERVER_NAME'],而你的答案就像一个魅力
    猜你喜欢
    • 1970-01-01
    • 2017-03-17
    • 2017-10-19
    • 2017-08-08
    • 1970-01-01
    • 2023-03-13
    • 2020-11-03
    • 2023-02-13
    • 2012-08-14
    相关资源
    最近更新 更多