0

我将如何将此代码转换为一个元素以在我的 Web 应用程序中重用?

<div class="row">

<?php foreach ($mobiles as $mobile): ?>
    <ul class="product-listing unstyled">
    <li>
        <a href="<?php echo $this->webroot . 'mobiles/view/'.$mobile['Mobile']['id']; ?>">
            <img src="<?php echo $this->webroot; echo 'files/files'.$mobile['Mobile']['filename']; ?>" alt="<?php echo $mobile['Mobile']['productname']; ?>" />
            <div class="pricing pull-right">&euro;<?php echo $mobile['Mobile']['price']; ?> </div>
            <h3><?php echo $mobile['Mobile']['productname']; ?></h3>
        </a>
    </li>
    </ul>
<?php endforeach; ?>

</div>  
4

1 回答 1

1

剪切和粘贴

一个元素只是一段视图代码——创建一个元素:

// /views/elements/foo.ctp
<div class="row">

<?php foreach ($mobiles as $mobile): ?>
...

只需在您的视图文件(或布局 - 或其他元素)中调用它:

// /widgets/index.ctp

<?php echo $this->element('foo'); ?>

如何将变量传递给元素

文档中所述,可以将变量传递给元素:

<?php echo
$this->element('helpbox',
    array("helptext" => "Oh, this text is very helpful."));
?>

在元素文件中,所有传递的变量都可以作为参数数组的成员使用(与控制器中的 set() 处理视图文件的方式相同)。在上面的示例中,/app/views/elements/helpbox.ctp 文件可以使用 $helptext 变量。

// /views/elements/helpbox.ctp
<?php
echo $helptext; //outputs "Oh, this text is very helpful."
?>

如果它是变量 - 使其成为变量

模型也从移动设备更改为平板电脑

问题中的示例代码将模型名称作为固定字符串:

<h3><?php echo $mobile['Mobile']['productname']; ?></h3>

只需将其设为变量:

<h3><?php echo $mobile[$modelName]['productname']; ?></h3>

并在调用元素时定义。

于 2013-07-15T21:42:19.143 回答