【问题标题】:how to dd() result from stored procedures in laravel如何从 laravel 中的存储过程 dd() 结果
【发布时间】:2020-07-20 23:18:41
【问题描述】:

我需要接受来自 SP 的数据。我从 web API(laravel) 调用 SP。

                //get no reg from system
                $response3 = $client->post($webapi_url . '/api/max_noreg', [
                //     'json' => [
                'form_params' => [
                    'tglreg' => '2020-07-20 00:00:00',
                ],
                'cookies' => $cookieJar,
                'headers' => [
                    'Accept' => 'application/json',
                ],
            ]);

            dd($response3);

这是我的 SP

   ALTER PROCEDURE [dbo].[spmcu_Reg_MaxNoRegByTglTrans] 

    @TglTrans datetime

AS

SELECT NoRegMax = IsNull(MAX(NoReg),'') FROM mcu_Reg
WHERE TglTrans = @TglTrans

这是我的 API 控制器

public function max_noreg(Request $request)
{
    // $credentials = [
    //     'tglreg' => $request->tglreg
    // ];

    // $tglst = '2020-07-19 00:00:00';

    $referral_registers = DB::connection('as_api')
        ->select('EXEC spmcu_Reg_MaxNoRegByTglTrans ?', 
        array($request->tglreg));

    return response()->json([
        'success' => true,
        'data' => $referral_registers
    ]);
}

当我 dd() 响应时,它返回这个

响应 {#590 ▼ -原因短语:“好的” -状态代码:200 -标题:数组:6 [▶] -headerNames:数组:6 [▶] -协议:“1.1” -流:流 {#582 ▶} }

我希望它从 SP 中返回结果,如下例所示

IDU2007200003  

我检查了我的 sql profiler,日志是这样的

声明@p1 int 设置@p1=1 exec sp_prepexec @p1 output,N'@P1 nvarchar(4000)',N'EXEC spmcu_Reg_MaxNoRegByTglTrans @P1',N'2020-07-20 00:00:00' 选择@p1

请帮助我获取我的 sp 结果并将其传递给 dd 以测试我是否获得了值

以下是我的转储值

    GuzzleHttp\Psr7\Response Object
(
    [reasonPhrase:GuzzleHttp\Psr7\Response:private] => OK
    [statusCode:GuzzleHttp\Psr7\Response:private] => 200
    [headers:GuzzleHttp\Psr7\Response:private] => Array
        (
            [Host] => Array
                (
                    [0] => 127.0.0.1:8000
                )

            [Date] => Array
                (
                    [0] => Mon, 20 Jul 2020 05:36:30 GMT
                    [1] => Mon, 20 Jul 2020 05:36:30 GMT
                )

            [Connection] => Array
                (
                    [0] => close
                )

            [X-Powered-By] => Array
                (
                    [0] => PHP/7.2.19
                )

            [Cache-Control] => Array
                (
                    [0] => no-cache, private
                )

            [Content-Type] => Array
                (
                    [0] => application/json
                )

        )

    [headerNames:GuzzleHttp\Psr7\Response:private] => Array
        (
            [host] => Host
            [date] => Date
            [connection] => Connection
            [x-powered-by] => X-Powered-By
            [cache-control] => Cache-Control
            [content-type] => Content-Type
        )

    [protocol:GuzzleHttp\Psr7\Response:private] => 1.1
    [stream:GuzzleHttp\Psr7\Response:private] => GuzzleHttp\Psr7\Stream Object
        (
            [stream:GuzzleHttp\Psr7\Stream:private] => Resource id #572
            [size:GuzzleHttp\Psr7\Stream:private] => 
            [seekable:GuzzleHttp\Psr7\Stream:private] => 1
            [readable:GuzzleHttp\Psr7\Stream:private] => 1
            [writable:GuzzleHttp\Psr7\Stream:private] => 1
            [uri:GuzzleHttp\Psr7\Stream:private] => php://temp
            [customMetadata:GuzzleHttp\Psr7\Stream:private] => Array
                (
                )

        )

)

【问题讨论】:

  • 您的 SP 是否准确地返回了您在 dd() 中所期望的内容?如果是这样,请尝试回显<pre>; print_r($response3); die();,而不是dd($response3)。您必须在响应中的某处具有预期值。
  • 我照着说的做,但返回的响应中没有预期值。有什么建议吗?
  • 您能否在返回响应之前对$referral_registers 执行相同操作。意味着把它放在print_r()。
  • 试试$response3->getBody()。 GuzzleHttp 具有 getBody() 函数,可以访问响应正文。
  • print_r($response3->getBody());它显示部分“print_r($response3);”

标签: php laravel stored-procedures


【解决方案1】:

你可以这样尝试,解码响应 $response = json_decode($response3->getBody()); dd(response)

【讨论】:

  • 是的...我需要先解码以 dd 响应..thx 以获得您的答案。希望这对其他人也有帮助
猜你喜欢
  • 1970-01-01
  • 2017-05-05
  • 2017-08-01
  • 2014-03-08
  • 2020-10-23
  • 1970-01-01
  • 1970-01-01
  • 2020-02-18
  • 2023-03-28
相关资源
最近更新 更多