【问题标题】:Codeigniter : Loading a different view in a loop according to URI segmentCodeigniter:根据 URI 段在循环中加载不同的视图
【发布时间】:2010-10-27 09:40:55
【问题描述】:

我有一个从我的模型加载的建筑物列表。这些建筑物在我的视野中循环显示:

控制器

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; ?> 

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

我希望能够为特定建筑物加载特定动作。

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

我的网址如下所示:

默认一个

场地/建筑物

显示药店价格

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

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

提前非常感谢你(我也为我的英语不好表示歉意)

【问题讨论】:

    标签: url codeigniter view segment


    【解决方案1】:

    如果不了解更多关于设置的信息,很难说,但您需要在 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; ?> 
    

    但如前所述,在不了解系统的情况下很难给出一个体面的答案。

    【讨论】:

    • 谢谢你,Ross,它让我确信在视图中进行测试是设置的“最佳”解决方案。
    【解决方案2】:

    然后是这样的:

    $this->Base_Model->getUserBuildingFromWebname($webname);
    

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

    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);
    }
    

    【讨论】:

    • 感谢 Repox 的回答,但实际上我在索引函数中获得了建筑物的完整列表。然后在我看来,我遍历并默认显示“信息”。我想做的是显示信息,但是如果在 URL 中传递了建筑物,那么我将显示其他建筑物的信息和传递的建筑物的价格。通过在我看来进行测试,我以“丑陋”的方式取得了成就,但我真的不喜欢它。任何想法表示赞赏,再次感谢您!
    猜你喜欢
    • 1970-01-01
    • 2013-01-19
    • 1970-01-01
    • 1970-01-01
    • 2020-02-15
    • 1970-01-01
    • 2014-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多