2016-04-13 6 views
0

Я получил этот код:Преобразовать объект PHP в строку

<?php 
    $imageVar = $entry->field('logo')->generate(); 
    $path = $imageVar; 
    $file = basename($path, ".svg"); 
    $rest = substr($file, 0, -9); 
?> 

<img src="<?php echo $imageVar; ?>" onerror="this.onerror=null; this.src='files/media/images/partners/<?php echo $rest; ?>.png'" title="<?php echo $entry->field('name')->value(); ?>" alt="<?php echo $entry->field('name')->value(); ?>" > 

его рабочих, но я получаю сообщение об ошибке, как это:

[13-Apr-2016 10:00:49 GMT] 
PHP Warning: basename() expects parameter 1 to be string, object given in /wwwroot.wwwnew/templates/customcatalog_partnerpool_leser_1_1.html5 on line 58 
#0 [internal function]: __error(2, 'basename() expe...', '/wwwroot.wwwnew...', 58, Array) 
#1 /wwwroot.wwwnew/templates/customcatalog_partnerpool_leser_1_1.html5(58): basename(Object(Contao\FilesModel), '.svg') 
#2 /wwwroot.wwwnew/system/modules/core/library/Contao/BaseTemplate.php(88): include('/wwwroot.wwwnew...') 
#3 /wwwroot.wwwnew/system/modules/core/library/Contao/Template.php(277): Contao\BaseTemplate->parse() 
#4 /wwwroot.wwwnew/system/modules/core/classes/FrontendTemplate.php(46): Contao\Template->parse() 
#5 /wwwroot.wwwnew/system/modules/pct_customelements_plugin_customcatalog/PCT/CustomElements/Plugins/CustomCatalog/Core/CustomCatalog.php(436): Contao\FrontendTemplate->parse() 
#6 /wwwroot.wwwnew/system/modules/pct_customelements_plugin_customcatalog/PCT/CustomElements/Plugins/CustomCatalog/Frontend/ModuleReader.php(145): PCT\CustomElements\Plugins\CustomCatalog\Core\CustomCatalog->render() 
#7 /wwwroot.wwwnew/system/modules/core/modules/Module.php(283): PCT\CustomElements\Plugins\CustomCatalog\Frontend\ModuleReader->compile() 
#8 /wwwroot.wwwnew/system/modules/pct_customelements_plugin_customcatalog/PCT/CustomElements/Plugins/CustomCatalog/Frontend/ModuleReader.php(95): Contao\Module->generate() 
#9 /wwwroot.wwwnew/system/modules/core/elements/ContentModule.php(59): PCT\CustomElements\Plugins\CustomCatalog\Frontend\ModuleReader->generate() 
#10 /wwwroot.wwwnew/system/modules/core/library/Contao/Controller.php(484): Contao\ContentModule->generate() 
#11 /wwwroot.wwwnew/system/modules/core/modules/ModuleArticle.php(213): Contao\Controller::getContentElement(Object(Contao\ContentModel), 'main') 
#12 /wwwroot.wwwnew/system/modules/core/modules/Module.php(283): Contao\ModuleArticle->compile() 
#13 /wwwroot.wwwnew/system/modules/core/modules/ModuleArticle.php(67): Contao\Module->generate() 
#14 /wwwroot.wwwnew/system/modules/core/library/Contao/Controller.php(417): Contao\ModuleArticle->generate(false) 
#15 /wwwroot.wwwnew/system/modules/core/library/Contao/Controller.php(277): Contao\Controller::getArticle(Object(Contao\ArticleModel), true, false, 'main') 
#16 /wwwroot.wwwnew/system/modules/core/pages/PageRegular.php(133): Contao\Controller::getFrontendModule('0', 'main') 
#17 /wwwroot.wwwnew/system/modules/core/controllers/FrontendIndex.php(285): Contao\PageRegular->generate(Object(Contao\PageModel), true) 
#18 /wwwroot.wwwnew/index.php(20): Contao\FrontendIndex->run() 
#19 {main} 

Но я понятия не имею, как решить эту проблему.

+1

что выход '$ path' ? – urfusion

+3

$ imageVar - это объект, вы можете использовать 'print_r ($ imageVar);' и отобразить результат? –

+0

Выходной файл $ patch: «assets/images/d/1900-cd29b6dd.png» и $ imageVar получил тот же результат. – fr3d

ответ

2

Прежде всего, вы должны понять разностный между объектом и строками

$imageVar = $entry->field('logo')->generate(); 
      $path = $imageVar; 

здесь $ imageVar соделался объект не строка, так что вы измените первый Bez ваш функция $ файл = базовый ($ пути, «.svg»); это требуется строка не приемлю

, если вы делаете это в PHP затем использовать (строка) Befour в $ imageVar теперь ваш код будет

$imageVar = $entry->field('logo')->generate(); 
       $path = (string)$imageVar; 

попробовать

+0

Это работает на 90% :), но не для этого: $ imageVar = \ FilesModel :: findByUuid ($ result-> логотип); $ path = (строка) $ imageVar; Ошибка говорит об ошибке восстановления PHP: объект класса Contao \ FilesModel не может быть преобразован в строку в /wwwroot.wwwnew/templates/customcatalog_partnerpool_leser_1_1.html5 в строке 57 – fr3d

+0

$ imageVar = \ FilesModel :: findByUuid ($ result-> logo); это не упоминается в вашем приведенном выше коде –

+0

Да, я только что видел это сейчас, я думал, что это то же самое. – fr3d

Смежные вопросы