Laravel return 在 post 之后对于存储过程为空
Laravel return after post is null with stored procedure
我有存储 方法 和 return 像这样:
return redirect()->route('hasil.transaksi', ["data" => $data]);
使用 路线 像这样:
ROUTE::GET('hasil-transaksi', [KasirRajalController::class, 'hasilTransaksi'])->name('hasil.transaksi');
方法return是这样的:
public function hasilTransaksi(Request $request)
{
$data["info"] = DB::select("EXEC spx_kasirirj_GetData
@sdata = 2,
@where = '" . $request->no_transaksi . "'
");
dd($data);
}
URL 这样存储后 :
http://127.0.0.1:8000/hasil-transaksi?data%5B0%5D%5B%5D=0000260&data%5B0%5D%5Bno_transaksi%5D=KRJ22010001
我想抓no_transaksi=KRJ22010001粘贴到上面的方法return中。但是我不明白,结果是空的。
enter image description here
请帮忙?
完整的 dd($request) :
enter image description here
您的代码中有多项内容需要审核:
return redirect()->route('hasil.transaksi', ["data" => $data]);
这将执行 GET 重定向,因此 $data
对象将添加为 GET 参数并进行编码(从对象到字符串)。这就是为什么您的 URL 唯一参数是“数据”(http://127.0.0.1:8000/hasil-transaksi?data=
),然后是编码数据。
你的解码 URL 数据看起来像这样 data[0][]=0000260&data[0][no_transaksi]=KRJ22010001
。
这种格式似乎有点奇怪,但我没有足够的代码来确认。您可以这样做(假设您不需要 0000260
参数 [应该键入]):
return redirect()->route('hasil.transaksi', ["no_transaksi" => $data[0]['no_transaksi']]);
这应该会生成正确的 URL ?no_transaksi=xx
,因此 $request->no_transaksi
应该可以工作(您也应该对其进行清理)。
@where = '" . $request->no_transaksi . "'
正如@Joundill 所提到的,您的原始查询的这一部分对 SQL 注入开放。如果您不使用 Eloquent, Models or Requests,您至少应该清理并验证 no_transaksi
请求参数值。
我有存储 方法 和 return 像这样:
return redirect()->route('hasil.transaksi', ["data" => $data]);
使用 路线 像这样:
ROUTE::GET('hasil-transaksi', [KasirRajalController::class, 'hasilTransaksi'])->name('hasil.transaksi');
方法return是这样的:
public function hasilTransaksi(Request $request)
{
$data["info"] = DB::select("EXEC spx_kasirirj_GetData
@sdata = 2,
@where = '" . $request->no_transaksi . "'
");
dd($data);
}
URL 这样存储后 :
http://127.0.0.1:8000/hasil-transaksi?data%5B0%5D%5B%5D=0000260&data%5B0%5D%5Bno_transaksi%5D=KRJ22010001
我想抓no_transaksi=KRJ22010001粘贴到上面的方法return中。但是我不明白,结果是空的。
enter image description here
请帮忙?
完整的 dd($request) : enter image description here
您的代码中有多项内容需要审核:
return redirect()->route('hasil.transaksi', ["data" => $data]);
这将执行 GET 重定向,因此 $data
对象将添加为 GET 参数并进行编码(从对象到字符串)。这就是为什么您的 URL 唯一参数是“数据”(http://127.0.0.1:8000/hasil-transaksi?data=
),然后是编码数据。
你的解码 URL 数据看起来像这样 data[0][]=0000260&data[0][no_transaksi]=KRJ22010001
。
这种格式似乎有点奇怪,但我没有足够的代码来确认。您可以这样做(假设您不需要 0000260
参数 [应该键入]):
return redirect()->route('hasil.transaksi', ["no_transaksi" => $data[0]['no_transaksi']]);
这应该会生成正确的 URL ?no_transaksi=xx
,因此 $request->no_transaksi
应该可以工作(您也应该对其进行清理)。
@where = '" . $request->no_transaksi . "'
正如@Joundill 所提到的,您的原始查询的这一部分对 SQL 注入开放。如果您不使用 Eloquent, Models or Requests,您至少应该清理并验证 no_transaksi
请求参数值。