我只是想检查图像是否存在,我可以使用PHP来完成。例如: -
$file = WWW_ROOT .'uploads' . DS . 'employee' . DS .'_'.check.jpg;
$file_exists = file_exists($file);
它对我来说很好。但我也尝试过像这样使用elementExists
: -
if($this->elementExists("../".$employees->front_image))
{
echo $this->Html->image("../".$employees->front_image); // image output fine without condition.
}
// Here $employees->front_image = uploads/employee/employeename.jpg
此检查无效。我怎么能在CakePHP中做到这一点?
答案 0 :(得分:1)
我认为这适用于Cake 3(您应该在afterFind
方法IMO中执行此操作):
// Create a new file with 0644 permissions
$file = new File('/path/to/file.php', true, 0644);
if ($file->exists()) {
//do something
}
$file->close();
您的方法是检查视图元素是否存在。
答案 1 :(得分:1)
CakePHP是用PHP编写的,所以如果你已经有一个像file_exists()
那样的简单解决方案。所以你可以这样写: -
if (file_exists(WWW_ROOT . $employees->front_image)):
echo $this->Html->image('../' . $employees->front_image);
endif;
elementExists()
用于检查View元素是否存在,而不是webroot中是否存在文件,因此不应该像您尝试的那样使用。它会进行file_exists()
检查,但这会仅扫描所有可用的View元素路径。