2017-01-23 4 views
2

Я использую cakephp framework версии 2.6.1не в состоянии генерировать эскиз создавать эскизы из phpThumb в контроллере [CakePHP рамки]

Я создаю function, который get properties images и создаст это thumbnail по phpthumb

мой вопрос я не могу создать эскиз от phpThumb в своей функции

Я получаю все data, так как хочу здесь мой контроллер

Я пытался загрузить помощника phpThumb как этот

public $helpers = array('PhpThumb.PhpThumb');

, но не работает для меня, то я пытался импортировать его из моего родителя `AppController как этот

App::import('Helper', 'PhpThumb.PhpThumb');, но, к сожалению, тоже не работает.

я проверил мой error logs и нашел эту ошибку

PHP Fatal error: Call to a member function url() on a non-object in /home/gulfsothebysrealty/public_html/app/Controller/CronController.php on line 39

в $propertyImages['Photo']['image_url'] я получаю propspace сервера 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>'; 
      } 

     } 
     } 
    } 
    } 
+2

phpthumb древний и страшный Lib. Попробуйте Представьте себе, я написал обертку плагина для тортов вокруг него https://github.com/burzum/cakephp-imagine-plugin. Кроме того, контроллер - это неправильное место для манипулирования данными. – burzum

+0

проблема в том, что я работаю на веб-сайте, версия cakephp 2.6, и я должен использовать phpthumb, я попробую ваш плагин на любом новом сайте. –

+0

@OwaisAslam - выберите 2.x ветку для реализации на cakephp 2 – justrohu

ответ

2

Я получил парням решения,

я делал ни одной ошибки

мне нужно импортировать 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 
      ));