如何计算图像的高度和宽度?我试图将图像置于第一个答案中描述的中心:
How to make an image center (vertically & horizontally) inside a bigger div
这就是我到目前为止所尝试的:
<% control ProfileImage %>
<% if getOrientation = 1 %>
<img src="$URL" style="margin-left: -{$Width/2)}px" class="portrait"/>
<% else_if getOrientation = 2 %>
<img src="$URL" class="landscape"/>
<% end_if %>
<% end_control %>
决定性行的输出是:
<img src="/assets/Uploads/picture.jpg" style="margin-left: -{154/2)}px" class="portrait"/>
然后我尝试编写一个自己的函数:
class Profile extends Page{
//...
function GetHalfWidth(){
return ($this->ProfileImage->Width)/2;
}
//...
}
但是当我尝试在前端查看页面时出现以下错误:
[Notice] Trying to get property of non-object
答案 0 :(得分:2)
要获得模型中图像的宽度,可以将功能更改为:
function GetHalfWidth() {
$width = $this->obj('ProfileImage')->Width;
return $width / 2;
}
但是,如果您尝试在ProfileImage的控制循环中引用该方法表单,则需要“跳出”并使用$ Top.GetHalfWidth
我认为更好的方法是将它定义为ProfileImage的一种方法,如果ProfileImage是从Image继承的......
在Profile.php
<?php
class Profile extends Page {
...
public static $has_one = array(
'ProfileImage' => 'Profile_Image'
);
...
}
class Profile_Controller extends Page_Controller {
...
}
class Profile_Image extends Image {
function GetHalfWidth() {
$width = $this->Width;
return $width / 2;
}
}