如果其他在蛋糕PHP不显示默认图像


if else in cakePHP not displaying default image

当存储在数据库中的图像的文件路径条目为空时,我正在尝试在 cakePHP 中显示默认图像。我发现下面的代码正在发生的情况是,如果数据库条目为空,则会显示默认图像,但如果数据库中有条目,也会显示默认图像。

因此,由于某种原因,如果数据库中有一个条目$image没有显示。感谢您的帮助。

保罗

<?php
$image = $this->Html->image(
        $news['News']['imgPath'],
        array('title' => $news['News']['alt_tag'], 'class' => 'left'),
        array('escape' => false));                 
    $default_image = "<img src='"/FBCW_new2/files/uploads/default.jpg'" class='"left'" alt='"default image'"/>";
    if(file_exists("$image")) $filename = $image;
    else $filename = $default_image;
    echo $filename;
  ?>

分辨率:由于$image是一个 html 字符串,我添加了一个变量来首先检查文件路径是否为空,然后通过它设置$filename。

        $photo = $news['News']['imgPath'];
        $image = $this->Html->image(
                      $news['News']['imgPath'],
                      array('title' => $news['News']['alt_tag'], 'class' => 'left'),
                      array('escape' => false));                 
      $default_image = "<img src='"/FBCW_new2/files/uploads/default.jpg'" class='"left'" alt='"default image'"/>";
       if(!empty($photo)) $filename = $image;
       else $filename = $default_image;
       echo $filename;

您正在检查$image是否是有效的文件路径,但$image包含 HTML 字符串;因此,file_exists几乎总是会返回 false 。您要检查文件路径是否有效:

if(file_exists(APP . WEBROOT_DIR . '/' . $news['News']['imgPath'])){
     // ...
}

注意:根据存储这些图像的位置(以及存储其文件路径的方式),您可能需要使用APP常量(和其他常量)来检查正确的绝对文件路径。

您可能希望创建一个帮助程序来执行这样的映像替换,请参阅帮助程序 - CakePHP 说明书 2.0。