我有一個項目表和一個圖像表。一個項目有很多圖像,一個圖像屬於一個項目。在圖像表中,我有一個名爲image_dimensions的字段。我想要實現的是獲得foreach循環,但是對於每個image_dimensions,這些循環需要不同。cakePHP 3.0 - 在同一視圖中以不同方式顯示圖像 - querybuilder
我可以通過執行該顯示的所有圖像:
<?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中的QueryBuilder的。我想我需要用它來解決我的問題。但似乎無法讓查詢工作。
$project = $this->Projects->find();
$project->matching('Images', function($q){
return $q->where(['Images.image_dimensions' => '2x2']);
}
我想實現的是顯示所有圖像,但應顯示以2x2尺寸的圖像不同,然後用3×3尺寸的圖像。所有的圖像都在相同的視野中。因此,對於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']);
}
你的代碼,你的解釋是有點矛盾的,是它,你只是想顯示的尺寸分組_all_相關圖像,在_one和同一視圖模板中? – ndm
我想要實現的是顯示所有圖像,但具有2x2尺寸的圖像應以不同的方式顯示,然後使用3x3尺寸的圖像。所有的圖像都在相同的視野中。因此,對於2x2和3x3圖像尺寸,圖像的類和圖像周圍div的類應該不同。 – Gilko
這真的就是這一切嗎?聽起來有點太簡單,因爲你需要做的就是像輸出圖像一樣有條件地輸出HTML。 – ndm