我有一个print_coupon.ctp文件,我想用于我的任何优惠券categories....restaurants,夜总会,高尔夫球场等(这些都有自己的模型)。在我的控制器中,我有这样的逻辑:
public function print_all_coupons() {
$this->layout ='couponlayout';
$this->set('title', 'Print all coupons for Gulf Shores');
$this->Coupon->recursive=2;
$this->paginate['Coupon']=array(
'limit'=>9,
'order'=>array(
'id'=>'asc'
),
'conditions'=>array(
'OR'=>array(
'expires' =>0,
'Coupon.end_date >'=>date('Y-m-d')
))
);
$c=$this->paginate('Coupon');
$this->set('printcoupons', $c);
}这使我可以看到任何优惠券belongsTo餐厅,高尔夫球场,夜总会,用户等。通常在我的视图中打印餐厅优惠券,我会检索我的数据如下
echo $h['Restaurant']['Location']['address'];这很好用,只适用于餐馆。我希望能够从控制器中获得一个变量,它可以让我更改优惠券所属的任何模型,如下所示:
echo $h['$someModel']['Location']['address'];这在Cakephp中肯定是可能的吧?
发布于 2012-02-03 17:25:31
你需要相关的模型吗?它们在$this->params->models中以数组的形式提供。
编辑:
如果我理解正确的话,您想要echo一些相关模型的位置?$this->params->models包含一个相关模型的关联数组。CouponModel的关联模型数组可能如下所示:
Array
(
[Restaurant] => Array
(
[plugin] =>
[className] => Restaurant
)
[GolfCourse] => Array
(
[plugin] =>
[className] => GolfCourse
)
[Nightclub] => Array
(
[plugin] =>
[className] => Nightclub
)
[User] => Array
(
[plugin] =>
[className] => User
)
)然后,您可以遍历此数组并获取每个模型的位置。为了清楚起见,我已经将模型和每个className存储在一个变量中。
<?php
$associatedModels = $this->params->models;
foreach ($associatedModels as $model) :
$className = $model['className'];
echo $h[$className]['Location']['address'];
endforeach;
?>https://stackoverflow.com/questions/9122601
复制相似问题