首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Codeigniter :根据URI段在循环中加载不同的视图

Codeigniter :根据URI段在循环中加载不同的视图
EN

Stack Overflow用户
提问于 2010-10-27 09:40:55
回答 2查看 764关注 0票数 0

我有一个建筑清单,我从我的模型加载。在我看来,这些建筑物是以一个循环的方式显示出来的:

控制器

代码语言:javascript
复制
public function index() {
 $data['buildings'] = $this->Base_Model->getUserBuildings();
 $this->load->view('game', $data); }

视图

代码语言:javascript
复制
<?php foreach($buildings as $b): ?>
    <div class="building">[...]</div>
<?php endforeach; ?> 

每个构建都有一些可能的“操作”,如“信息”、“价格”、“颜色”。默认状态显示"info“。

我希望能够为特定的建筑加载一个特定的动作。

例如,我有一家工厂和一家药店,默认情况下都会显示"info“选项卡。如果我单击药店的“价格”选项卡,如何显示工厂的“信息”选项卡和药店的“价格”选项卡?

我的URL看起来如下:

默认一

场地/建筑物

显示药店的价格

站点/建筑物/价格/药店

也许我应该寻找一个局部视图解决方案,但我确实需要一个建议或解决方案;)

提前谢谢你(我也为我的糟糕英语道歉)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-29 09:44:17

如果不知道更多关于设置的信息,就很难说出来,但是您需要在price()函数中设置某种条件。

从数据库中获取信息/价格操作吗?

如果是这样的话

代码语言:javascript
复制
<?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; ?> 

但正如所述,如果对该系统不了解更多,就很难给出一个像样的答案。

票数 0
EN

Stack Overflow用户

发布于 2010-10-27 09:50:05

就像这样:

代码语言:javascript
复制
$this->Base_Model->getUserBuildingFromWebname($webname);

然后,在您的建筑物控制器中,可以添加以下内容:

代码语言:javascript
复制
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);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4031785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档