0

モデルからロードする建物のリストがあります。それらの建物は、私のビュー内でループ状に表示されます。

コントローラ

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は次のようになります:

デフォルトのもの

サイト/建物

ドラッグストアの価格を表示

サイト/建物/価格/ドラッグストア

多分私は部分的なビューの解決策を探す必要がありますが、私は本当にアドバイスや解決策が必要です;)

よろしくお願いします(英語が下手でしたこともお詫びします)

4

2 に答える 2

0

設定について詳しく知ることなく、言うのは難しいですが、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-29T09:44:17.523 に答える
0

このようなもの:

$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);
}
于 2010-10-27T09:50:05.897 に答える