无法生成缩略图,从 CakePHP 控制器中的 phpThumb 生成缩略图



我正在使用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
            ) );

最新更新