我有一个建筑清单,我从我的模型加载。在我看来,这些建筑物是以一个循环的方式显示出来的:
控制器
public function index() {
$data['buildings'] = $this->Base_Model->getUserBuildings();
$this->load->view('game', $data); }视图
<?php foreach($buildings as $b): ?>
<div class="building">[...]</div>
<?php endforeach; ?> 每个构建都有一些可能的“操作”,如“信息”、“价格”、“颜色”。默认状态显示"info“。
我希望能够为特定的建筑加载一个特定的动作。
例如,我有一家工厂和一家药店,默认情况下都会显示"info“选项卡。如果我单击药店的“价格”选项卡,如何显示工厂的“信息”选项卡和药店的“价格”选项卡?
我的URL看起来如下:
默认一
场地/建筑物
显示药店的价格
站点/建筑物/价格/药店
也许我应该寻找一个局部视图解决方案,但我确实需要一个建议或解决方案;)
提前谢谢你(我也为我的糟糕英语道歉)
发布于 2010-10-29 09:44:17
如果不知道更多关于设置的信息,就很难说出来,但是您需要在price()函数中设置某种条件。
从数据库中获取信息/价格操作吗?
如果是这样的话
<?php foreach($buildings as $b): ?>
<div class="building">
<?php if($this->uri->segment(3)==$b['building_name']) {
echo 'Price';
} else {
echo 'Info';
}
?>
</div>
<?php endforeach; ?> 但正如所述,如果对该系统不了解更多,就很难给出一个像样的答案。
发布于 2010-10-27 09:50:05
就像这样:
$this->Base_Model->getUserBuildingFromWebname($webname);然后,在您的建筑物控制器中,可以添加以下内容:
public function index( $webname = null )
{
if( !is_null($webname) )
$buildingId = $this->Base_Model->getUserBuildingFromWebname($webname);
else
$buildingId = null;
$data["showBuildingDetails"] = $buldingId;
//the rest of your index() function
}
public function price ( $webname )
{
return $this->index($webname);
}https://stackoverflow.com/questions/4031785
复制相似问题