2016-04-13 41 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」之間diffrence );是需要串不反對

,如果你這樣做是在PHP然後用(字符串)befour的$ imageVar現在你的代碼將

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

嘗試

+0

這適用於90%:)但不是這一個:$ imageVar = \ FilesModel :: findByUuid($ result->標誌); $ path =(string)$ imageVar;錯誤表示PHP可恢復錯誤:無法將類Contao \ FilesModel的對象轉換爲/wwwroot.wwwnew/templates/customcatalog_partnerpool_leser_1_1.html5第57行的字符串 – fr3d

+0

$ imageVar = \ FilesModel :: findByUuid($ result-> logo);這在您的上述代碼中沒有提及 –

+0

是的,我現在只是看到它,我認爲它是相同的。 – fr3d