在后端模型列中显示缩略图

Show Thumbnails in Backend Model Columns

我正在使用 OctoberCMS 和 Laravel。

我使用文件上传/媒体查找器来附加图像。我正在尝试将缩略图添加到后端模型列。

我尝试遵循这些指南:
https://octobercms.com/forum/post/how-to-display-pictures-in-backend-lists
https://octobercms.com/docs/database/attachments


文件上传


列缩略图


型号

我的模型中有Catalog.php

public $attachOne = [
    'photo' => 'System\Models\File'
];

columns.yamal

字段 photo 设置为 partial 并添加 path.


部分_photo.htm我有

<?php echo $this->photo->getThumb(100, 100, ['mode' => 'crop']); ?>

错误

我得到 Error: Call to a member function getThumb() on null.

如果我在部分中使用 <img src="" />,它将在列中显示一个空图像,但我不知道将什么 php 作为 src。

根据使用部分 it will pass $record variable corresponding to that row 时的列小部件,[ 不要在 ][=42= 中使用 $this ]

表示该行 $record 将指向当前记录,因此您可以使用 $record

your _photo.htm should be like this

<img src="<?php echo $record->photo->getThumb(100, 100, ['mode' => 'crop']); ?>" />
<!-- OR -->
<img src="<?= $record->photo->getThumb(100, 100, ['mode' => 'crop']) ?>" />

更新

如果您正在使用 media finder,那么您不能在文件上使用 getThumb,因为它将只是 path for that file ,所以它不可能 resize 该图像使用 getThumb [ 它只能使用 relational attachments (attachMany, attachone etc...) ]

尽管您可以使用它来显示小图像

<img height="64" width="64" src="<?= 'https://october-plaza.com/storage/app/media/' 
. $model->photo ?>"` />

you can add this height="64" width="64" to show image as thumbnail (but it will be full image just scale down using attributes).

如有疑问请评论

您可以使用 columns.yaml 文件中的 OCTOBER IMAGE RESIZER 插件来做到这一点

后端列表中的用法

图像缩放器也可以用在缩略图类型的后端列表上,例如

image:
 label: Image
 type: thumb
 sortable: false

这适用于:

  • AttachMany(使用第一张图片)文档
  • AttachOne 文档
  • Mediafinder 文档

您还可以选择传递宽度(默认 50)、高度(默认 50)和选项,如下所示:

image:
  label: Image
  type: thumb
  sortable: false
  width: 75
  height: 100
  options:
     mode: crop