【问题标题】:cakePHP 3.0 - displaying images differently in the same view - querybuildercakePHP 3.0 - 在同一视图中以不同方式显示图像 - querybuilder
【发布时间】:2015-05-11 12:50:19
【问题描述】:

我有一个项目表和一个图像表。一个项目有很多图像,一个图像属于一个项目。在图像表中,我有一个名为 image_dimensions 的字段。我想要实现的是获得 foreach 循环,但是对于每个 image_dimensions,这些循环需要不同。

我可以通过这样做显示所有图像:

<?php foreach ($project->images as $images): ?>

例如,数据库中有 5 张图像。 3 个尺寸为 2x2 的图像和 2 个尺寸为 3x3 的图像。所以在下面的代码中,它会给我 3 个带有图像的 div 和 2 个空的 div。那些空的 div 不应该在那里。

每个图像尺寸也需要不同的是 div 的类。有时我想使用 col-lg-6,有时我想使用 col-lg-12,...

<?php foreach ($project->images as $images): ?>
    <div class="col-lg-6">
       <?php
         if($images->image_path && $images->image_dimensions == '2x2')
         echo $this->Html->image($images->image_path, array(
        'class' => 'img-responsive center-block project-images'));
       ?>
    </div>
<?php endforeach; ?>

我还阅读了 cakephp 中的查询构建器。我想我需要用它来解决我的问题。但似乎无法让查询工作。

$project = $this->Projects->find();
$project->matching('Images', function($q){
   return $q->where(['Images.image_dimensions' => '2x2']);
}

我想要实现的是显示所有图像,但是 2x2 尺寸的图像应该与 3x3 尺寸的图像显示不同。当然,所有图像都在同一视图中。所以对于 2x2 和 3x3 的图像尺寸,图像的类和图像周围的 div 的类应该是不同的。 是否可以在 foreach 循环中添加条件?

我的 Projectscontroller 中的视图操作

public function view($id = null)
{
    $project = $this->Projects->get($id, [
        'contain' => ['Categories', 'Users', 'Tags', 'Images'],
    ]);

    $this->set('project', $project);
    $this->set('_serialize', ['project']);
}

【问题讨论】:

  • 你的代码和你的解释有点矛盾,是不是你只是想显示所有按维度分组的相关图像,在相同 i> 查看模板?
  • 我想要实现的是显示所有图像,但是 2x2 尺寸的图像应该与 3x3 尺寸的图像显示不同。当然,所有图像都在同一视图中。所以对于 2x2 和 3x3 的图像尺寸,图像的类和图像周围的 div 的类应该是不同的。
  • 这就是它的全部内容吗?听起来有点太简单了,因为您需要做的就是有条件地输出 HTML,就像图像一样。

标签: php mysql cakephp foreach cakephp-3.0


【解决方案1】:

解决方案

<?php if($images->image_dimensions == '2x2')
         echo $this->Html->div(array('class' => 'col-lg-6')
      );
      elseif($images->image_dimensions == '3x3')
         echo $this->Html->div(array('class' => 'col-lg-12')
      );
?>

【讨论】:

    猜你喜欢
    • 2015-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-12
    • 1970-01-01
    相关资源
    最近更新 更多