如何解决laravel-medailibrary getFirstMediaUrl“ images”对于连接的表不起作用
我在从laravel-medailibrary中的联接表中获取媒体时遇到问题,我使用getFirstMediaUrl(“ images”)从一个表中获取照片,并且可以工作,但是如果我加入两个或三个表,则无法工作我解决了吗?
这是share_tb表:
这是用户表:
这是媒体表:
解决方法
尝试一些方法后,我找到了答案:
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');
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。