【问题标题】:Laravel, converting data from raw query to JSON [duplicate]Laravel,将数据从原始查询转换为 JSON [重复]
【发布时间】:2013-05-14 08:09:53
【问题描述】:

大家好,谁能帮我将一些将从模型返回的数据(基于 RAW 查询)转换为 JSON。

所以在我的控制器中我有类似的东西:

public function get_index() {
    $data = Something::getDataFromRawQuery();

    return View::make('....')->with('data', $data);
}

所以我的问题是如何将 JSON 数据从控制器转发到视图?

这是查询:

$apps = DB::query('SELECT a.name,
    a.desc,
    a.sig,
    ar.rate
    FROM something a
    INNER JOIN something_else ar
    ON (a.id=ar.something_id)
    ORDER BY ar.rate DESC'
 );

 return $apps;

【问题讨论】:

  • 如果不是 Fluent 或 Eloquent,那又是什么呢? mysqli? PDO?你能告诉我们执行查询的代码吗?
  • 我的错误我编辑了问题,谢谢。
  • 出于好奇:您为什么不使用 Fluent Query Builder?
  • @JosephSilber 查询生成器有些地方很尴尬;虽然这个查询看起来不像。
  • @PhillSparks - 这就是我说回避的原因。一切都有它的位置。

标签: php javascript laravel


【解决方案1】:

DB::query返回一个简单的数组,所以直接调用json_encode就可以了:

$data = Something::getDataFromRawQuery();

return View::make('....')->with('data', json_encode($data));

【讨论】:

  • 出现错误:使用 to_array() 时在非对象上调用成员函数 to_array()
  • 在.js之后,var data = ;我得到以下信息:错误呈现视图:[something::template] 数组到字符串转换
  • 你为什么json_decodeing它?只需执行var data = <?php echo $data; ?>; 即可完成。
【解决方案2】:

只需使用json_encode()

public function get_index() {
    $data = Something::getDataFromRawQuery();

    /* Do your loop here to build an array "results" from $data, if necessary
       Really depends on what ::getDataFromRawQuery returns. */

    return View::make('....')->with('data', json_encode($results));
}

【讨论】:

    猜你喜欢
    • 2015-06-26
    • 2019-05-31
    • 2019-04-29
    • 2021-10-29
    • 2019-02-03
    • 2016-09-14
    • 2016-04-27
    • 1970-01-01
    • 2017-01-05
    相关资源
    最近更新 更多