Öncelikle modeliniz için aktif bir form oluşturmanızı öneririm. Aktaracağınız öğrenci modeline ait formu aşağıdaki şekilde oluşturmanız, hata yapma ihtimalinizi azaltır ve yaptığınız hatayı görmenizi sağlar.

public function actionYeni()
{
  $model = new ogr_ogrenci ();
  .
  .
  .
  $this->render('yeni',array('ana'=>$ana, 'model' => $model ));
<?= CHtml::errorSummary($model); ?>
.
.
.
<tr>
  <td><?= CHtml::activeLabel($model,'adi'); ?></td>
  <td><?= CHtml::activeTextField($model,'adi') ?></td>
</tr>
İkinci olarak modelinizi her halükarda geçerli bir model olarak farz ediyorsunuz. Bu da eğer modelinizde bir hata olsa da ve kaydetmese de sayfayı yönlendireceği ve kullanıcıya, model üzerinde oluşacak olan hataları göstermeyeceği anlamına geliyor.

if($model->save())
  $this->redirect('index');
Lakin daha ayrıntılı tahminlerde bulunmak için verdiğiniz kodlar yeterli değil. Eğer POST içindeki değişkenlerin geçerli olduğundan eminseniz modelinizdeki kuralları tekrar gözden geçirmeniz gerekli.