Yii 增删改查(CURD)

15 篇文章 0 订阅
Model层的建立
<?php

class AdminRole extends CActiveRecord
{

	public function tableName()
	{
		return '{{admin_role}}';
	}

	public function rules()
	{
		return array(
			array('rolename, description', 'required'),
			array('rolename', 'length', 'max'=>50),
			array('roleid, rolename, description', 'safe', 'on'=>'search'),
		);
	}

	public function relations()
	{
		return array(
		);
	}
	public function attributeLabels()
	{
		return array(
			'roleid' => 'Roleid',
			'rolename' => 'Rolename',
			'description' => 'Description',
		);
	}

	public function search()
	{

		$criteria=new CDbCriteria;

		$criteria->compare('roleid',$this->roleid);
		$criteria->compare('rolename',$this->rolename,true);
		$criteria->compare('description',$this->description,true);

		return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
		));
	}

	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}
}


控制器写法

<?php

class AdminRoleController extends Controller
{
	/**
	 * 根据编号查看详细信息
	 * @param $id
	 * @throws CHttpException
	 */
	public function actionView($id)
	{
		$this->render('view',array(
			'model'=>$this->loadModel($id),
		));
	}

	/**
	 * 新增
	 */
	public function actionCreate()
	{
		$model=new AdminRole;
		if(isset($_POST['AdminRole']))
		{
			$model->attributes=$_POST['AdminRole'];
			if($model->save())
				$this->redirect(array('view','id'=>$model->roleid));
		}

		$this->render('create',array(
			'model'=>$model,
		));
	}

	/**
	 * 编辑
	 * @param $id 编号
	 * @throws CHttpException
	 */
	public function actionUpdate($id)
	{
		$model=$this->loadModel($id);
		if(isset($_POST['AdminRole']))
		{
			$model->attributes=$_POST['AdminRole'];
			if($model->save())
				$this->redirect(array('view','id'=>$model->roleid));
		}

		$this->render('update',array(
			'model'=>$model,
		));
	}

	/**
	 * 删除
	 * @param $id 编号
	 * @throws CHttpException
	 */
	public function actionDelete($id)
	{
		$this->loadModel($id)->delete();
		if(!isset($_GET['ajax']))
			$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
	}


	public function actionIndex()
	{
		$dataProvider=new CActiveDataProvider('AdminRole');
		$this->render('index',array(
			'dataProvider'=>$dataProvider,
		));
	}
	/**
	 * 管理页面
	 */
	public function actionAdmin()
	{
		/**
		 * search 查询
		 */
		$model=new AdminRole('search');
		/**
		 * 创建缓存
		 */
		Yii::app()->redis_cache->set('adminRole',$model);
		$adminRole = Yii::app()->redis_cache->get('adminRole');
		$model->unsetAttributes();
		$adminRole->unsetAttributes();
		if(isset($_GET['AdminRole']))
		{
			$model->attributes=$_GET['AdminRole'];
			$adminRole->attributes = $_GET['AdminRole'];
		}
		$this->render('admin',array(
			'model'=>$adminRole,
		));
	}

	public function loadModel($id)
	{
		$model=AdminRole::model()->findByPk($id);
		if($model===null)
			throw new CHttpException(404,'The requested page does not exist.');
		return $model;
	}

	protected function performAjaxValidation($model)
	{
		if(isset($_POST['ajax']) && $_POST['ajax']==='admin-role-form')
		{
			echo CActiveForm::validate($model);
			Yii::app()->end();
		}
	}
}


View/adminRole


admin.php

<?php
/* @var $this AdminRoleController */
/* @var $model AdminRole */
Yii::app()->clientScript->registerScript('search', "
$('.search-button').click(function(){
	$('.search-form').toggle();
	return false;
});
$('.search-form form').submit(function(){
	$('#admin-role-grid').yiiGridView('update', {
		data: $(this).serialize()
	});
	return false;
});
");
?>

<h1>角色管理</h1>

<?php echo CHtml::link('Advanced Search','#',array('class'=>'search-button')); ?>
<div class="search-form" style="display:none">
<?php $this->renderPartial('_search',array(
	'model'=>$model,
)); ?>
</div>

<?php $this->widget('zii.widgets.grid.CGridView', array(
	'id'=>'admin-role-grid',
	'dataProvider'=>$model->search(),
	'filter'=>$model,
	'columns'=>array(
		'roleid',
		'rolename',
		'description',
		array(
			'class'=>'CButtonColumn',
		),
	),
)); ?>


create.php

<?php
/* @var $this AdminRoleController */
/* @var $model AdminRole */

$this->breadcrumbs=array(
	'Admin Roles'=>array('index'),
	'Create',
);

$this->menu=array(
	array('label'=>'List AdminRole', 'url'=>array('index')),
	array('label'=>'Manage AdminRole', 'url'=>array('admin')),
);
?>

<h1>角色添加</h1>

<?php $this->renderPartial('_form', array('model'=>$model)); ?>

update.php

<h1>修改角色 <?php echo $model->roleid; ?></h1>
<?php $this->renderPartial('_form', array('model'=>$model)); ?>


_form.php

<div class="form">

<?php $form=$this->beginWidget('CActiveForm', array(
	'id'=>'admin-role-form',
	'enableAjaxValidation'=>false,
)); ?>

	<p class="note">Fields with <span class="required">*</span> are required.</p>

	<?php echo $form->errorSummary($model); ?>

	<div class="row">
		<?php echo $form->labelEx($model,'rolename'); ?>
		<?php echo $form->textField($model,'rolename',array('size'=>50,'maxlength'=>50)); ?>
		<?php echo $form->error($model,'rolename'); ?>
	</div>

	<div class="row">
		<?php echo $form->labelEx($model,'description'); ?>
		<?php echo $form->textArea($model,'description',array('rows'=>6, 'cols'=>50)); ?>
		<?php echo $form->error($model,'description'); ?>
	</div>

	<div class="row buttons">
		<?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>
	</div>

<?php $this->endWidget(); ?>

</div><!-- form -->

_view.php

<div class="view">

	<b><?php echo CHtml::encode($data->getAttributeLabel('roleid')); ?>:</b>
	<?php echo CHtml::link(CHtml::encode($data->roleid), array('view', 'id'=>$data->roleid)); ?>
	<br />

	<b><?php echo CHtml::encode($data->getAttributeLabel('rolename')); ?>:</b>
	<?php echo CHtml::encode($data->rolename); ?>
	<br />

	<b><?php echo CHtml::encode($data->getAttributeLabel('description')); ?>:</b>
	<?php echo CHtml::encode($data->description); ?>
	<br />


</div>


_search.php

<?php
/* @var $this AdminRoleController */
/* @var $model AdminRole */
/* @var $form CActiveForm */
?>

<div class="wide form">

<?php $form=$this->beginWidget('CActiveForm', array(
	'action'=>Yii::app()->createUrl($this->route),
	'method'=>'get',
)); ?>

	<div class="row">
		<?php echo $form->label($model,'roleid'); ?>
		<?php echo $form->textField($model,'roleid'); ?>
	</div>

	<div class="row">
		<?php echo $form->label($model,'rolename'); ?>
		<?php echo $form->textField($model,'rolename',array('size'=>50,'maxlength'=>50)); ?>
	</div>

	<div class="row">
		<?php echo $form->label($model,'description'); ?>
		<?php echo $form->textArea($model,'description',array('rows'=>6, 'cols'=>50)); ?>
	</div>

	<div class="row buttons">
		<?php echo CHtml::submitButton('Search'); ?>
	</div>

<?php $this->endWidget(); ?>

</div><!-- search-form -->




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!关于YII1和MySQL询,我可以给你一些基本的指导。在YII1框架中,进行MySQL询可以使用Active Record或原生的SQL语句。 使用Active Record进行询时,你可以通过以下步骤进行操作: 1. 创建一个模型类,该类将映射到数据库中的表格。比如,如果你要询一个名为"users"的表格,你可以创建一个名为"User"的模型类。 2. 在模型类中,你可以使用一些内置的Active Record方法来执行询。例如,使用"findAll"方法可以获取符合条件的所有记录,使用"findByPk"方法可以根据主键找记录等等。 下面是一个使用Active Record进行询的例子: ```php // 导入模型类 Yii::import('application.models.User'); // 创建询对象 $query = User::model()->findAll(); // 执行询 $results = $query->findAll(); // 遍历结果 foreach ($results as $result) { // 处理结果 } ``` 如果你想使用原生的SQL语句进行询,可以使用Yii的数据库连接对象来执行询。以下是一个使用原生SQL询的示例: ```php // 获取数据库连接对象 $db = Yii::app()->db; // 构建SQL询语句 $sql = "SELECT * FROM users WHERE age > :age"; // 执行询 $results = $db->createCommand($sql)->bindValue(':age', 18)->queryAll(); // 遍历结果 foreach ($results as $result) { // 处理结果 } ``` 注意,在执行原生SQL询时,需要注意防止SQL注入攻击,可以使用参数绑定来避免。以上只是一些基本的询示例,你可以根据具体的需求进行进一步的询和操作。希望这些信息对你有所帮助!如果你有更多问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值