2015-03-26 17 views
1

Это мой первый раз с использованием структуры Yii, и я никогда раньше не использовал ни одну фреймворк. Я нашел регистрационную форму, выполненную с использованием схемы Yii по этой ссылке: http://www.yiiframework.com/forum/index.php/topic/27242-registration/Форма регистрации, сделанная с использованием Yii Framework

Однако я не могу понять все это. Ниже приведен код из SiteController.php

/** 
* Displays the register page 
*/ 
public function actionRegister() 
{ 
     $model=new RegisterForm; 
     $newUser = new User; 

     // if it is ajax validation request 
     if(isset($_POST['ajax']) && $_POST['ajax']==='login-form') 
     { 
       echo CActiveForm::validate($model); 
       Yii::app()->end(); 
     } 

     // collect user input data 
     if(isset($_POST['RegisterForm'])) 
     { 
       $model->attributes=$_POST['RegisterForm']; 
       $newUser->username = $model->username; 
       $newUser->password = $model->password; 
       $newUser->email = $model->email; 
       $newUser->joined = date('Y-m-d'); 

       if($newUser->save()) { 
         $identity=new UserIdentity($newUser->username,$model->password); 
         $identity->authenticate(); 
         Yii::app()->user->login($identity,0); 
         //redirect the user to page he/she came from 
         $this->redirect(Yii::app()->user->returnUrl); 
       } 

     } 
     // display the register form 
     $this->render('register',array('model'=>$model)); 
} 

Я не могу понять, почему нет никаких запросов MySQL? Я никогда не использовал фреймворк, и обычно то, что я хотел бы сделать, это написать что-то вроде mysqli_query("INSERT INTO table values....");, чтобы вставить новые данные в таблицу.

Для чего нужен $ newUser? и как $ identity создаст новый UserIdentity и аутентифицирует? Я смущен всеми этими функциями.

ответ

1

Прежде всего, вам необходимо ознакомиться с понятиями YII в MVC (которые являются общими между фреймворками):

http://www.yiiframework.com/doc/guide/1.1/en/basics.mvc

http://www.yiiframework.com/doc/guide/1.1/en/basics.best-practices

$newUser (который является экземпляром User класса) унаследована от Yii Model и предназначен для создания запросов к базе данных (это цель модели в MVC), поэтому вы не увидите SQL-контроллера.

$identity - это экземпляр класса UserIdentity, он наследует от other built-in Класс Yii, связанный с аутентификацией.

Предполагаю, что они являются частью расширения http://www.yiiframework.com/extension/yii-user/.

Все встроенные классы Yii и их методы хорошо документированы, а официальное руководство Yii является довольно хорошим и исчерпывающим, это отличное место, чтобы начать знакомство с каркасом.