php - SilverStripe 图像填充功能导致服务器错误
问题描述
我正在尝试在银色条纹内部进行动态裁剪。过去我们使用
$Article_Image->SetWidth(390)
有效。它返回了正确宽度的图像。但是我现在想返回一个使用填充函数返回 390 x 235 图像的图像。到目前为止我得到的返回一个“服务器错误”,但它没有返回任何有用的错误。
在我的 newsArticle 类中,我有以下内容:
控制器 - 电流
class newsArticle extends Page {
private static $has_one = array(
'Article_Image' => 'Image'
);
public function ResizedImage() {
return $this->Article_Image()->Fit(390,235);
}
}
然后在我的页面模板中,我有以下内容:
模板 - 当前
<% if $Article_Image %>
<div class="col-md-5 col-lg-4 nopadding">
$ResizedImage()
</div>
<% end_if %>
已经试过了
我已经尝试在模板内做 $Article_Image->Fit(390,235) 但它不起作用。我也尝试过以下代码,但它返回错误“无法在非成员对象上调用 Fit() 方法”
控制器 - 已经尝试过
class newsArticle extends Page {
private static $has_one = array(
'Article_Image' => 'Image'
);
public function ResizedImage($Image) {
return $Image->Fit(390,235);
}
}
模板 - 已经尝试过
<% if $Article_Image %>
<div class="col-md-5 col-lg-4 nopadding">
$ResizedImage($Article_Image)
</div>
<% end_if %>
如何让它返回适合特定尺寸的图像?我确信它可以完成,因为它已在 Silverstripe 的文档中提到: https ://docs.silverstripe.org/en/4/developer_guides/files/images/
我正在使用 silverstripe 3.1.12
解决方案
最简单的方法是在模板中执行以下操作。
$Article_Image.CroppedImage(390,235)
您不需要ResizedImage
在控制器中有功能。
这是第 3 版文档的链接:
https://docs.silverstripe.org/en/3.1/developer_guides/files/image/
Fit 方法是在 SS4 中引入的。
推荐阅读
- python - Django删除项目用例:好的做法?
- django - 如何制作依赖于另一个模态的主键的“GET”视图
- rest - 缺少父资源时选择哪个 HTTP 代码
- ruby-on-rails - Rails:在迁移中重命名列失败
- javascript - 我怎样才能 ReactDOM.render() 将多个反应元素放入一个节点而不互相杀死?
- java - hashset的打印元素顺序
- python - 使用 python 烧瓶通过 Azure 应用洞察轻松获取异常
- qt - 如何在 macOS high Sierra 中使用 brew 安装 qt 5.9.7?
- google-maps-api-2 - 我可以使用带有角度谷歌地图(Agm)和打字稿的矢量地图吗?
- angularjs - Angular ngUpgrade - 使用 @angular/router 降级模块(用于性能)