1

チームのグループのdelete team横にボタンがあるページがあります。チームがグループに属していない場合、チームをグループに追加するためのチェックボックスとボタンがあります。チームのあるグループのリストを表示するactionViewで作成しました。

GroupControllerのactionView

public function actionView($id) {
    $group = $this->loadModel($id);

    $teamlst = Group::getAllTeamOfGroup($id);
    $teamnotlst = Group::getAllTeamNotInGroup($id);

    // Submit
    $preSelectedItems = array();
    if (isset($_POST['teamlist'])) {
        $preSelectedItems = array();
        foreach ($_POST['teamlist'] as $selectedItem) {
            $preSelectedItems[] = $selectedItem;
        }
    }
   // $teamNo = CHtml::listData($teamnotlst, 'id', 'name');

    //Delete       




    $this->render('view', array(
        'model' => $group,
        'teamlst' => $teamlst,
        'preSelectedItems'=> $preSelectedItems,
        'group_id'=>$id,
        'teamnotlst' => $teamnotlst,
    ));

    if(isset($_POST['btndeleteteam'])){
            TeamGroup::model()->deleteTeamGroup($team->id, $model->ID);
    }

}

ビューファイル内

<div class="action">    
    <input type="submit" name="btnupdateteam" value="Update Team">        
</div>
<?php echo CHtml::endForm(); ?>
<div class ="team">

<div class="column1">
    <?php foreach ($teamlst as $team): ?>

        <div class="row">
            <?php
            echo $team->name;

            ?> 
            <input type="submit" name="btndeleteteam" value="Delete  Team">
            <?php
            if(isset($_POST['btndeleteteam'])){
                TeamGroup::model()->deleteTeamGroup($team->id, $model->ID);    

            }?>
        </div>


    </div><!-- comment -->
<?php endforeach; ?>
    <?php    

    $preSelectedItems = array();
        if (isset($_POST['teamlist'])) {
            $preSelectedItems = array();
            foreach ($_POST['teamlist'] as $selectedItem) {
                $preSelectedItems[] = $selectedItem;
            }
        }

    $teamNo = CHtml::listData($teamnotlst, 'id', 'name');
    echo CHtml:: checkBoxList('teamlist', $preSelectedItems, $teamNo);
    ?>

</div>

<div class ="team available">

</div>

私の考えは、delete teamボタンをクリックするとグループからチームが削除されるということです。これを行う方法があります。

TeamGroup::model()->deleteTeamGroup($team->id, $model->ID);    

チームがグループに属していない場合、チェックボックスと更新ボタンがあり、チェックボックスがオンになっている場合はチームをグループに追加します。

よろしくお願いします!

4

1 に答える 1

2

私があなたの問題が何であるかを正しく理解しているなら、あなたはこのドキュメントの章を読む必要があります

http://www.yiiframework.com/doc/guide/1.1/en/basics.controller#action

すべてのアクション、つまりdeleteaddビューではなくコントローラーに存在する必要があります

ビューでこれの代わりに:

        if(isset($_POST['btndeleteteam'])){
            TeamGroup::model()->deleteTeamGroup($team->id, $model->ID);    

        }?>

このようなものをコントローラーに追加する必要があります

public function actionDelete($id) {
    TeamGroup::model()->deleteTeamGroup($id);    
    $this->redirect('group/view');
}

そしてこれの代わりに

<input type="submit" name="btndeleteteam" value="Delete  Team">

このようなものがビューにある必要があります

<a href="<?php echo Yii::app()->createUrl("group/delete",array('id'=>$team->id));?>">delete</a>

または、ニーズに合わせてCGridViewを変更できます

于 2012-04-20T14:43:57.130 に答える