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

时间:2017-01-23 13:59:47

标签: php 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']我正在获取propspace服务器图像网址

如何在控制器中使用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>';
            }

        }
      } 
    } 
   }

1 个答案:

答案 0 :(得分:2)

我得到了解决方案的人,

我犯了一个错误

我需要像{I}一样从phpThumb helper导入AppController

App::import( 'Helper', 'PhpThumb.PhpThumb' );

然后我必须为object

制作phpThumb Helper

$phpthumb = new PhpThumbHelper(new View());

此后,我可以使用$phpThumb

创建缩略图
$propertyImageThumb = $phpThumb->url( $propertyImages['Photo']['image_url'], array(
                'w'  => 1349,
                'h'  => 500,
                'zc' => 1
            ) );