【问题标题】:laravel request returns input as array key name with null valuelaravel 请求将输入作为具有空值的数组键名返回
【发布时间】:2017-04-21 09:17:16
【问题描述】:

我有一个表单可以通过 laravel 中的 Ajax 发送请求
我的控制器的这个 sn-p 返回 null

use Illuminate\Http\Request;
class StatusController extends Controller {
  public function postStatus(Request $request) {
    if ($request->ajax()) {
      dd($request->input('statusBody'));  

然而,这会返回一个数组,其中 statusBody 作为键名,值为空

use Illuminate\Http\Request;
class StatusController extends Controller {
  public function postStatus(Request $request) {
    if ($request->ajax()) {
      dd($request->input());  

这是返回的结果

array:1 [▼
  "This_is_a_sample_status" => null
]  

而这终于返回正确的值

use Illuminate\Http\Request;
class StatusController extends Controller {
  public function postStatus(Request $request) {
    if ($request->ajax()) {
      $val = $request->input('statusBody');
      dd(array_search($val, $request->all()));  

我的问题是:为什么会这样?
为什么$request->input('name') 没有按预期返回值?
更新:
这也是 成功 将想要的结果记录到控制台的 Ajax 功能

var statusBody = $('#statusBody').val();
      $.ajax({
        type: "POST",
        url: 'status',
        data: statusBody,
        success: function(data){
          console.log(statusBody);
        }
      });

【问题讨论】:

  • 你能用 json/ajax 代码块更新问题吗?通常,我认为使用$request->input('name'); 应该没问题
  • 我已经更新了我的问题@AntonisTsimourtos,尽管我看不到它是如何关联的,只要它将数据传递给控制器​​并成功将所需结果记录到控制台
  • 尝试将 data: statusBody, 更改为 data: statusBody.serialize(), 。也许也可以添加dataType: 'json',

标签: php arrays laravel httprequest


【解决方案1】:

我试图在一个新的 laravel 应用程序中重现该问题,但我发现了问题所在。
Ajax 函数中的data 参数需要这样的 dataString

var statusBody = $('#status').val();
      var dataString = "status="+statusBody;
      $.ajax({
        type: "POST",
        url: 'status',
        data: dataString
      });

感谢 Antonis 指出 Ajax 调用

【讨论】:

    猜你喜欢
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-20
    相关资源
    最近更新 更多