【问题标题】:php laravel image tagsphp laravel 图片标签
【发布时间】:2015-01-26 16:32:58
【问题描述】:

正如标题所说,我正在使用 Laravel 和标签,我的问题如下。

我有一个图片库,其中每张图片都有一个标签。双方的关系是多对多的。除了一件事,一切都很好。当我浏览到我的媒体库时,所有图像都打印在那里,我还想打印与图像相关的所有标签。通过 Eloquent 我可以打印标签,但问题是每个图像的 id 都需要正确打印相关标签。

我的图像存储库是上面对 imageId 进行硬编码的地方。从 repo 我将它传递给控制器​​,然后传递给带有 foreach 循环的视图。

$result = new StdClass;
$result->items = $images->skip($offset)->take($limit)->get();
$collection = new Collection($result->items);

    $ImageId =$collection->get(2)->media_library_id;
    $image = $this->media->find($ImageId);

    $tags = $image->tags()->get();
    $result->tags = $tags;

【问题讨论】:

    标签: php laravel tags


    【解决方案1】:

    您尚未显示初始图像查询或模型,但您可以使用 with() 预加载标签。

    $images = Image::with('tags')
        ->skip($offset)
        ->take($limit)
        ->get();
    

    然后在你的模板中你应该能够使用类似的东西

    @foreach ($images as $image)
        <img src="{{ $image->src }}" alt="">
        @foreach ($image->tags as $tag)
            {{ $tag->name }}
        @endforeach
    @endforeach
    

    【讨论】:

    • 抱歉,我忘记了初始图像查询。急切的加载会起作用,但我使用原始查询来获取图像。 $images = $this->db->table('media_library_image_info') ->leftJoin('media_library_images', 'media_library_images.media_library_image_info_id', '=', 'media_library_image_info.media_library_image_info_id') ->select([ 'media_library_image_info.*' , 'media_library_images.path 作为缩略图'
    猜你喜欢
    • 2016-08-24
    • 2014-09-02
    • 2014-07-28
    • 1970-01-01
    • 1970-01-01
    • 2014-08-22
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    相关资源
    最近更新 更多