我正在使用CakePHP框架版本2.6.1
。
我正在创建一个函数,它将获取属性图像,并将通过phpThumb
创建其缩略图。
我的问题是我无法从函数中的phpThumb
创建缩略图。我正在获取所需的所有数据。这是我的控制器
我试图像这样加载phpThumb
的助手
public $helpers = array('PhpThumb.PhpThumb');
但对我不起作用。然后我尝试从我的父AppController like
App::import('Helper', 'PhpThumb.PhpThumb')导入它;但不幸的是它也不起作用。
我检查了我的error logs
并发现了此错误
PHP 致命错误:在第 39 行/home/gulfsothebysrealty/public_html/app/Controller/CronController.php 中的非对象上调用成员函数 url()
在$propertyImages['Photo']['image_url']
我正在获得道具空间服务器图像网址
如何在控制器中使用phpThumb
生成缩略图?
class CronController extends AppController {
public function index() {
$properties = $this->Property->find( 'all', array(
'conditions' => array(
'Property.thumb_updated' => 0
),
'limit' => 5,
'order' => array( 'Property.id' => 'desc' )
)
);
foreach ( $properties as $property ) {
$propertyId = $property['Property']['id'];
$data = array( 'id' => $propertyId, 'thumb_updated' => 1 );
$this->Property->save( $data );
$getImages = $this->Property->Photo->find( 'all', array(
'conditions' => array(
'Photo.property_id' => $propertyId,
),
'order' => array( 'Photo.property_id' => 'desc' )
) );
foreach ( $getImages as $propertyImages ) {
if ( ! empty( $propertyImages['Photo']['image_url'] ) ) {
/*line 39*/ $propertyImageThumb = $this->PhpThumb->url( $propertyImages['Photo']['image_url'], array(
'w' => 1349,
'h' => 500,
'zc' => 1
) );
echo '<pre>';
print_r( $propertyImageThumb );
echo '</pre>';
}
}
}
}
}
我得到了解决方案,
我犯了一个错误
我需要像以前一样从AppController
导入phpThumb helper
App::import( 'Helper', 'PhpThumb.PhpThumb' );
然后我不得不为phpThumb Helper
做一个object
$phpthumb = new PhpThumbHelper(new View());
在此之后,现在我可以使用$phpThumb
创建缩略图
$propertyImageThumb = $phpThumb->url( $propertyImages['Photo']['image_url'], array(
'w' => 1349,
'h' => 500,
'zc' => 1
) );