私はyii1で働いています。 id(プライマリキー)に基づいてレコードを編集し、ID infをあるページから別のページへのクエリ文字列の形式で渡します。今私はIDを受け取ったコントローラーでそのIDを消毒したい。
私はfilter_input()
を使用しますが、仕事はできません。
YIIはgetパラメータで入力をサニタイズします
public function actionEditStudentById()
{
try
{
$id = filter_input(INPUT_GET, 'id', FILTER_SANITIZE_NUMBER_INT);
echo $id;
die();
$id = $_GET['id'];
$model = StudentDetail::getStudentById($id);
if (!$model) throw new Exception;
if(isset($_POST['StudentDetail']))
{
$model->attributes = $_POST['StudentDetail'];
if($model->validate())
{
$model->save(FALSE);
Yii::app()->user->setFlash('update', "Record updated successfully!");
$this->redirect(['student/list']);
}
}
$this->render('_form',array('model'=>$model));
}
catch(Exception $e)
{
echo 'Invalid user id: user not available';
}
}
ここdie()
は、単にコードを停止するために使用されます。 die()
の直前のIDは常にnullです。私は、idは常に、あなたのIDの前にint型を使用していないのはなぜ数ではなく任意のシンボルがURLにできます
何あなた 'getStudentById()'メソッドは次のように見えますか? –