Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Url Codeigniter:根据URI段在循环中加载不同的视图_Url_Codeigniter_View_Segment - Fatal编程技术网

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

Url Codeigniter:根据URI段在循环中加载不同的视图,url,codeigniter,view,segment,Url,Codeigniter,View,Segment,我有一个从模型中加载的建筑列表。这些建筑在我的视野中呈环形显示,如下所示: 控制器 看法 [...] 每个构建都有一些可能的“操作”,例如“信息”、“价格”、“颜色”。默认状态显示“信息” 我希望能够加载特定建筑的特定操作 例如,我有一家工厂和一家药店,默认情况下都显示“信息”选项卡。 如果单击药店的“价格”选项卡,如何显示工厂的“信息”选项卡和药店的“价格”选项卡 我的URL如下所示: 默认值 场地/建筑物 显示药店的价格 场地/建筑物/价格/药店 也许我应该寻找一个局部视图解决方案,但我

我有一个从模型中加载的建筑列表。这些建筑在我的视野中呈环形显示,如下所示:

控制器

看法


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

我希望能够加载特定建筑的特定操作

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

我的URL如下所示:

默认值

场地/建筑物

显示药店的价格

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

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


事先非常感谢(我也为我的英语不好道歉)

那么像这样的话:

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

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


但是如前所述,如果不了解更多关于系统的信息,很难给出一个合理的答案。

谢谢你的回答,但实际上我在索引函数中得到了所有建筑物的列表。然后在我的视图中,我遍历并默认显示“info”。我想做的是显示信息,但如果在URL中传递了建筑,那么我将显示其他建筑的信息以及传递的建筑的价格。在我看来,通过做一个测试,我以一种“丑陋”的方式取得了成绩,但我真的不喜欢它。任何想法都将不胜感激,再次感谢!谢谢你,罗斯,它让我相信在视图中进行测试是设置的“最佳”解决方案。
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);
}
<?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; ?>