문제

I get Undefined variable: user error in my controller:

And this is my controller:

public function actionduration()
{
    if (isset($_POST['W'])&&isset($_POST['Nodelist']))
    {
        $user = Sensor::model()->Week();
    }
    else if (isset($_POST['M'])&&isset($_POST['Nodelist']))
    {
        $user = Sensor::model()->Month();
    }
    else if(isset($_POST['S'])&&isset($_POST['Nodelist']))
    {
        $user = Sensor::model()->Six();
    }
    else if(isset($_POST['Y'])&&isset($_POST['Nodelist']))
    {
        $user = Sensor::model()->Year();
    }
    //print_r($user);

    $this->layout='main2';
    //$layout='//layouts/main1';
    $this->render('edit1', array('user'=>$user));
}
도움이 되었습니까?

해결책

Declare $user in starting.As your $user is not getting set in any if else statement.

Try this:

public function actionduration()
{
  $user=""; 
  $this->layout='main2';
 if (isset($_POST['W'])&&isset($_POST['Nodelist']))
  {
    $user = Sensor::model()->Week();
   }
else if (isset($_POST['M'])&&isset($_POST['Nodelist']))
{
    $user = Sensor::model()->Month();
}
else if(isset($_POST['S'])&&isset($_POST['Nodelist']))
{
    $user = Sensor::model()->Six();
}
else if(isset($_POST['Y'])&&isset($_POST['Nodelist']))
{
    $user = Sensor::model()->Year();
}

$this->render('edit1', array('user'=>$user));
}

Or You Can create one more else in last :

public function actionduration()
{
if (isset($_POST['W'])&&isset($_POST['Nodelist']))
{
    $user = Sensor::model()->Week();
}
else if (isset($_POST['M'])&&isset($_POST['Nodelist']))
{
    $user = Sensor::model()->Month();
}
else if(isset($_POST['S'])&&isset($_POST['Nodelist']))
{
    $user = Sensor::model()->Six();
}
else if(isset($_POST['Y'])&&isset($_POST['Nodelist']))
{
    $user = Sensor::model()->Year();
}
else
{
   $user=""; 
 }
//print_r($user);

$this->layout='main2';
//$layout='//layouts/main1';
$this->render('edit1', array('user'=>$user));
}

다른 팁

This means your code is not initializing $user. Do a test to check if any of the if conditions are returning true. Looks like they all return false.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top