【问题标题】:What is the equivalent of codeigniter row_array in laravel?laravel中codeigniter row_array的等价物是什么?
【发布时间】:2020-07-24 19:57:22
【问题描述】:

我有这样的ajax

$.ajax({
    type: "POST",
    url: "{{ route('master.cabang_get') }}",
    data : {id: id},
    success: function (result){
        console.log(result);
        console.log(result['"kode_cabang"'])
        $('#id').val(result.id);
        $('#kode_cabang').val(result.kode_cabang);
        $('#nama_cabang').val(result.nama_cabang);

        $("#myModal").find('.modal-title').text('Edit Cabang');
        $("#myModal").modal('show',{backdrop: 'true'});           
    }
});

这是控制器

$data = DB::table('master_cabang')->where('id', $id)->first();
    echo json_encode($data);

在codeigniter中,我可以使用->row_array();并将数据作为 json_encode 返回。所以我可以在 javascript 中使用 console.log(result['') 。但是当我使用 laravel 时。它是未定义的。但响应看起来像这样

{"id":10,"kode_cabang":"BDG910","nama_cabang":"Bandung","createdat":"2020-04-12 06:17:18","updatedat":null}

基本上。如何在 laravel 中将单行作为数组返回?或者如何在 javascript 中提取结果响应?

【问题讨论】:

  • 您可以改进在您的 Ajax 块中添加 dataType: 'json' 或使用 JSON.parse(result) 在你的成功函数中
  • 啊,是的,它解决了问题。我需要添加数据类型:json。谢谢sss
  • Laravel 将结果转换为 json,无论是数组还是对象,创建模型并执行:return MasterCabang::find($id);

标签: javascript php laravel


【解决方案1】:

当您的响应是 arrayCollectionModel 或继承以下之一的对象时:

  • SymfonyResponse
  • Arrayable
  • Jsonable
  • ArrayObject
  • JsonSerializable

Laravel 会自动将响应转换为JSON。 (Documentation)

简而言之,要将查询结果作为 JSON 返回,您只需将其转换为数组并从您的路由/控制器方法返回,例如:

public function yourControllerMethod()
{
    return (array)DB::table('master_cabang')->where('id', $id)->first();
}

【讨论】:

  • 我在控制器中使用“return json_encode($data);”。然后在 javascript 中,result['id'] 仍然是未定义的。但结果显示与问题中的相同
  • @Ghozizzz 您是否在控制台/网络选项卡中遇到任何错误?另外,我的回答有误,后来更新了。
猜你喜欢
  • 2011-05-26
  • 1970-01-01
  • 2020-05-16
  • 2020-12-02
  • 1970-01-01
  • 1970-01-01
  • 2014-05-08
  • 2014-06-12
  • 1970-01-01
相关资源
最近更新 更多