一、新建数据库
新建一个名为“db_person”的数据库,其中新建一个名为”t_person“的表
二、连接数据库
1.打开main.php
2.将本地数据库中的dbname改成自己的数据库名字,即”db_person”
三、定义AR类(创建model)
1.在models中新建PHP文件(person.php),继承CActiveRcord
2.主要写两个方法,只需将第二个方法(tableName())中的return 改为自己数据库中表的名字。
class person extends CActiveRecord{
public static function model($className=__CLASS__){
return parent::model($className);
}
public function tableName(){
return 't_person';
}
}
注:默认情况下,AR类的名字和数据表的名字相同。如果不同,请覆盖 tableName() 方法。
四、控制器(Controller)
在controllers文件夹下新建一个文件夹,命名为person。在person中新建一个名为 PersonController的controller,并继承Controller。
class PersonController extends Controller{
}
五、编写增删改查的方法
1.在templates下新建一个名为person的文件夹用来存放html文件
在该文件中写出自己需要的表单
2.遍历所有person
在controller中写查看全部新闻的方法。在controller中的方法名要加action,可以自动识别。
/**
* 遍历person
*/
public function actionListPerson(){
$list = person::model()->findAll();
$list->smarty->assign('list',$list);
$list->smarty->display('person/home.html');
}
对应的html代码home.html
<body>
<a href="/dsjyw0725/person/person/ToAddPerson">增加</a>
<table>
<thead>
<tr><td>id</td><td>name</td><td>birthday</td><td>department</td><td>team</td></tr>
</thead><tbody>
<{foreach from=$list item=person}>
<tr>
<td><{$person.id}></td>
<td><{$person.name}></td>
<td><{$person.birthday}></td>
<td><{$person.department}></td>
<td><{$person.team}></td>
<td><a href="/dsjyw0725/person/person/getPersonById?id=<{$person.id}>">查看详情</a></td>
<td><a href="/dsjyw0725/person/person/delPerson?id=<{$person.id}>">删除</a></td>
<td><a href="/dsjyw0725/person/person/ToUpdatePerson?id=<{$person.id}>">修改</a></td>
</tr>
<{/foreach}>
<form action="/dsjyw0725/person/person/serPerson" method="post">
<input type="text" name="ser" class="search_key" placeholder="搜索内容">
<input type="submit" name="keyword" value="搜索" class="search_btn">
</form>
</tbody>
</table>
</body>
运行结果
3.增加person
通过controller中的方法,跳转到增加新闻页面
/**
* 跳转到增加页面
*/
public function actionToAddPerson(){
$this->smarty->display('person/add_person.html');
}
将添加的内容通过form表单,传给controller,增加新闻。
/**
* 增加person
*/
public function actionAddPerson(){
$person = new Person;
$name = $_POST['name'];
$birthday = $_POST['birthday'];
$department = $_POST['department'];
$team = $_POST['team'];
$comment = $_POST['comment'];
$person->name = $name;
$person->birthday = $birthday;
$person->department = $department;
$person->team = $team;
$person->comment =$comment;
$person->save();
$this->redirect(array(listPerson));
}
对应的html代码
<body>
<form action="/dsjyw0725/person/person/addPerson"method="post">
<table style="margin-top: 10px;font-size: x-large" >
<tr>
<td>name:</td>
<td><input type="text" name="name" style="width: 500px;height: 30px"></td>
</tr>
<tr>
<td>birthday:</td>
<td><input type="text" name="birthday" style="width: 500px;height: 30px"></td>
</tr>
<tr>
<td>department:</td>
<td><input type="text" name="department" style="width: 500px;height: 30px"></td>
</tr>
<tr>
<td>team:</td>
<td><input type="text" name="team" style="width: 500px;height: 30px"></td>
</tr>
<tr content="center">
<td colspan="2" style="text-align: center"><input type="submit" value="确认增加"></td>
</tr>
</table>
</form>
</body>
运行结果
4.删除person
将对应新闻的id传到controller,删除对应的person,调用查看全部person方法,返回到展示person页面。
/**
* 删除person
*/
public function actionDelPerson(){
$id = $_GET['id'];
$person = person::model()->findByPk($id);
$person->delete();
$this->redirect(array(listPerson));
}
运行结果
5.修改person
将要修改的person的id传给controller,将id对应的person在页面呈现出来,进行修改。
/**
* 跳转到修改页面
*/
public function actionToUpdatePerson(){
$id = $_GET['id'];
$person = person::model()->find('id=:id',array(':id'=>$id));
$this->smarty->assign('person',$person);
$this->smarty->display('person/update_person.html');
}
将要修改的信息通过form表单,传给controller,修改person。
/**
* 修改person
*/
public function actionUpdatePerson(){
$id = $_GET['id'];
$person =person::model()->find('id=:id',array(':id'=>$id));
$person->name=$_POST['name'];
$person->birthday=$_POST['birthday'];
$person->department=$_POST['department'];
$person->team=$_POST['team'];
$person->comment=$_POST['comment'];
$person->save();
$this->redirect(array(listPerson));
}
对应的html代码
<body>
<form action="/dsjyw0725/person/person/updatePerson" method="post">
<table border="2" style="margin-top: 100px;margin-left: 100px">
<tr >
<input type="text" name="id" value="<{$person.id}>" hidden/>
</tr>
<tr>
<td>name</td>
<td>
<textarea type="text" name="name" style="width: 1000px"><{$person.name}></textarea>
</td>
</tr>
<tr>
<td>birthday</td>
<td>
<textarea type="text" name="birthday" style="width: 1000px"><{$person.birthday}></textarea>
</td>
</tr>
<tr>
<td>department</td>
<td>
<textarea type="text" name="department" style="width: 1000px"><{$person.department}></textarea>
</td>
</tr>
<tr>
<td>team</td>
<td>
<textarea type="text" name="team" style="width: 1000px"><{$person.team}></textarea>
</td>
</tr>
<tr>
<td>comment</td>
<td>
<textarea type="text" name="comment" style="width: 1000px"><{$person.comment}></textarea>
</td>
</tr>
<tr content="center">
<td colspan="3" style="text-align: center"><input type="submit" value="确认修改"></td>
</tr>
</table>
</form>
</body>
运行结果
6.模糊查询
/**
*模糊查询
*/
public function actionSerPerson(){
$keyword=$_POST['keyword'];
$sql = "select * from t_person
where t_person.id like '%".$keyword."%'
or t_person.name like '%".$keyword."%'
or t_person.birthday like '%".$keyword."%'
or t_person.department like '%".$keyword."%'
or t_person.team like '%".$keyword."%'";
$list = Yii::app()->db->createCommand($sql)->queryAll();
$this->smarty->assign('list',$list);
$this->smarty->display('person/ser_person.html');
}
对应的html代码
<body>
<table border="3" >
<thead> <tr> <th>name</th><th>birthday</th><th>department</th><th>team</th><th>comment</th></tr></thead>
<tbody>
<{foreach from=$list item=person}>
<tr>
<td><{$person.name}></td>
<td><{$person.birthday}></td>
<td><{$person.department}></td>
<td><{$person.team}></td>
<td><{$person.comment}></td>
</tr>
<{/foreach}><a href="listPerson">回到主页</a>
</tbody>
</table>
</body>
运行结果