【问题标题】:laravel-medailibrary getFirstMediaUrl("images") not work for joined tableslaravel-medailibrary getFirstMediaUrl("images") 不适用于连接表
【发布时间】:2020-10-01 05:01:21
【问题描述】:

我在从 laravel-medailibrary 中的连接表中获取媒体时遇到问题,我使用 getFirstMediaUrl("images") 从一个表中获取照片并且它可以工作,但是如果我加入两个或三个表它不起作用,怎么能我解决了吗?

我想从用户分享的那些帖子中获取照片。

这个帖子表:

这是 share_tb 表:

这是用户表:

这是媒体表:

【问题讨论】:

    标签: laravel media-library laravel-medialibrary


    【解决方案1】:

    我在尝试了一些方法后找到了答案:

    public function getPosts(Request $request)
    {
    
    
        $result = [];
    
        $postID = DB::table("share_tb")->where("user_id", Auth::user()->id)->get();
    
        foreach ($postID as $id) {
    
            if (count(Post::where("id", $id->related_id)->get()) > 0) {
                $posts = Post::where("id", $id->related_id)->get();
                foreach ($posts as $post) {
    
                    // $result = $post->getMedia('images');
                    array_push($result, [
                        "comment_count" => getTotalComment($post->id),
                        "course_id" => $post->course_id,
                        "id" => $post->id,
                        'post_image' => count($post->getMedia('images')) > 0 ? $post->getMedia('images')[0]->getFullUrl('big') : "",
                        'logo'=>GetCourseLogo::collection(Course::where('course_id',$post->course_id)->get()),
                        "post_author" => $post->post_author,
                        "post_date" => $post->post_date,
                        "post_excerpt" => $post->post_excerpt,
                        "post_modified" => $post->post_modified,
                        "post_parent" => $post->post_parent,
                        "post_title" => $post->post_title,
                        "post_type" => $post->post_type,
                    ]);
                }
            }
    
        }
        return Response()->json($result);
    
    }
    

    通过这个资源集合,我得到了徽标:

    class GetCourseLogo extends JsonResource
      {
         public function toArray($request)
           {
              return $this->getFirstMediaUrl('logo');
           }
      }
    

    【讨论】:

      猜你喜欢
      • 2014-11-08
      • 2018-11-24
      • 2016-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-13
      • 1970-01-01
      • 2013-12-02
      相关资源
      最近更新 更多