【问题标题】:laravel - How to concatenate URL and retrieve images from database in json formatlaravel - 如何连接 URL 并以 json 格式从数据库中检索图像
【发布时间】:2018-03-21 02:34:33
【问题描述】:

我正在尝试显示存储在数据库中的图像的 json 数组,以在 Laravel 中附带完整的 URL。我正在使用CONCAT() 函数来连接图像的完整 URL,但我得到了一个错误的 URL,其中包含许多破折号。 这是即将到来的输出中的一个问题:

{
  "posts": [{
    "imageurl": "http:\/\/localhost:8000\/images\/1509695371.jpg"
  }, {
    "imageurl": "http:\/\/localhost:8000\/images\/1509695156.jpg"
  }, {
    "imageurl": "http:\/\/localhost:8000\/images\/1509696465.jpg"
  }, {
    "imageurl": "http:\/\/localhost:8000\/images\/1509697249.jpg"
  }]
}

这是我的控制器中用于从 Post 表中检索存储在数据库中的图像的函数:

public function index()
{
    $posts = Post::select(array(DB::raw("CONCAT('http://localhost:8000/images/', image) AS imageurl")))->get();
    return response()->json(['posts' =>  $posts]);
}

任何帮助将不胜感激!

【问题讨论】:

    标签: php mysql laravel


    【解决方案1】:

    非常感谢@Sari 现在工作正常。把代码改成这样后,

    public function index()
    {
      $posts =  json_encode(Post::select(array(DB::raw("CONCAT('http://localhost:8000/images/', image) AS imageurl")))->get(), JSON_UNESCAPED_SLASHES);
    
       return $posts;
    }
    

    【讨论】:

      【解决方案2】:

      您可以在 Post 模型中执行以下操作,而不是在 db 级别执行此操作

       public function getImageUrlAttribute($value)
          {
              return 'http://localhost:8000/'.$this->image;
          }
      

      并像$post->image_url一样访问它

      【讨论】:

      • 感谢 Sari,但您的回答并没有解决问题。我想知道如何在不获取那些额外的破折号的情况下很好地连接或获取附加到我正在检索的图像文件名的完整网址
      • 我在回复中没有看到任何破折号抱歉不知道你的意思@Hervera
      • 这不是数据库问题,您上面的代码应该可以正常工作。你可以简单地做return $posts,我相信 laravel 会为你处理 JSON_UNESCAPE_SLASHES 标志。您的问题是 php 正在转义您的 json 响应。
      • 是的,我看到你更新了它。 json 被转义只需添加上面引用的标志
      • 我正在这样做,正如你所说的那样 return $posts;但同样的问题发生了,laravel 没有转义 JSON_UNESCAPE_SLASHES 标志。这是新的响应 [{ "imageurl": "http:\/\/localhost:8000\/images\/1509695371.jpg" }, { "imageurl": "http:\/\/localhost:8000\/images \/1509695156.jpg" }]
      猜你喜欢
      • 2018-10-07
      • 1970-01-01
      • 1970-01-01
      • 2020-11-25
      • 1970-01-01
      • 1970-01-01
      • 2019-11-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多