我从Te来源尝试了代码
not getting where the mistake is error showing as not authorised please help me i am new to Yii framework and for Debugging also.
我的错误日志
2012/05/25 06:07:28 [error] [exception.CHttpException.403] exception CHttpException with message You are not authorized to perform this action. in C:wampyiiframeworkwebauthCAccessControlFilter.php:157
Stack trace:
#0 C:wampyiiframeworkwebauthCAccessControlFilter.php(120) CAccessControlFilter->accessDenied(Object(CWebUser), You are not aut... )
#1 C:wampyiiframeworkwebfiltersCFilter.php(39) CAccessControlFilter->preFilter(Object(CFilterChain))
#2 C:wampyiiframeworkwebCController.php(1146): CFilter->filter(Object(CFilterChain))
#3 C:wampyiiframeworkwebfiltersCInlineFilter.php(59) CController->filterAccessControl(Object(CFilterChain))
#4 C:wampyiiframeworkwebfiltersCFilterChain.php(131) CInlineFilter->filter(Object(CFilterChain))
#5 C:wampyiiframeworkwebCController.php(292): CFilterChain->run()
#6 C:wampyiiframeworkwebCController.php(266): CController->runActionWithFilters(Object(CInlineAction), Array)
#7 C:wampyiiframeworkwebCWebApplication.php(276): CController->run( autocompleteTes... )
#8 C:wampyiiframeworkwebCWebApplication.php(135): CWebApplication->runController( details/autocom... )
#9 C:wampyiiframeworkaseCApplication.php(162): CWebApplication->processRequest()
#10 C:wampwwwmyappindex.php(13): CApplication->run()
#11 {main}
REQUEST_URI=/myapp/index.php?r=details/autocompleteTest&term=asss
HTTP_REFERER=http://localhost/myapp/index.php?r=details/create
<强 > 主计长代码 强>
<?php
class DetailsController extends Controller
{
/**
* @var string the default layout for the views. Defaults to //layouts/column2 , meaning
* using two-column layout. See protected/views/layouts/column2.php .
*/
public $layout= //layouts/column2 ;
/**
* @return array action filters
*/
public function filters()
{
return array(
accessControl , // perform access control for CRUD operations
);
}
public function actionAutocompleteTest() {
$res =array();
if (isset($_GET[ term ])) {
$qtxt ="SELECT name FROM {{details}} WHERE name LIKE :username";
$command =Yii::app()->db->createCommand($qtxt);
$command->bindValue(":name", % .$_GET[ term ]. % , PDO::PARAM_STR);
$res =$command->queryColumn();
}
echo CJSON::encode($res);
Yii::app()->end();
}
/**
* Specifies the access control rules.
* This method is used by the accessControl filter.
* @return array access control rules
*/
public function accessRules()
{
return array(
array( allow , // allow all users to perform index and view actions
actions =>array( index , view ),
users =>array( * ),
),
array( allow , // allow authenticated user to perform create and update actions
actions =>array( create , update ),
users =>array( @ ),
),
array( allow , // allow admin user to perform admin and delete actions
actions =>array( admin , delete ),
users =>array( admin ),
),
array( deny , // deny all users
users =>array( * ),
),
);
}
/**
* Displays a particular model.
* @param integer $id the ID of the model to be displayed
*/
public function actionView($id)
{
$this->render( view ,array(
model =>$this->loadModel($id),
));
}
/**
* Creates a new model.
* If creation is successful, the browser will be redirected to the view page.
*/
public function actionCreate()
{
$model=new Details;
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST[ Details ]))
{
$model->attributes=$_POST[ Details ];
if($model->save())
$this->redirect(array( view , id =>$model->id1));
}
$this->render( create ,array(
model =>$model,
));
}
/**
* Updates a particular model.
* If update is successful, the browser will be redirected to the view page.
* @param integer $id the ID of the model to be updated
*/
public function actionUpdate($id)
{
$model=$this->loadModel($id);
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST[ Details ]))
{
$model->attributes=$_POST[ Details ];
if($model->save())
$this->redirect(array( view , id =>$model->id1));
}
$this->render( update ,array(
model =>$model,
));
}
/**
* Deletes a particular model.
* If deletion is successful, the browser will be redirected to the admin page.
* @param integer $id the ID of the model to be deleted
*/
public function actionDelete($id)
{
if(Yii::app()->request->isPostRequest)
{
// we only allow deletion via POST request
$this->loadModel($id)->delete();
// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
if(!isset($_GET[ ajax ]))
$this->redirect(isset($_POST[ returnUrl ]) ? $_POST[ returnUrl ] : array( admin ));
}
else
throw new CHttpException(400, Invalid request. Please do not repeat this request again. );
}
/**
* Lists all models.
*/
public function actionIndex()
{
$dataProvider=new CActiveDataProvider( Details );
$this->render( index ,array(
dataProvider =>$dataProvider,
));
}
/**
* Manages all models.
*/
public function actionAdmin()
{
$model=new Details( search );
$model->unsetAttributes(); // clear any default values
if(isset($_GET[ Details ]))
$model->attributes=$_GET[ Details ];
$this->render( admin ,array(
model =>$model,
));
}
/**
* Returns the data model based on the primary key given in the GET variable.
* If the data model is not found, an HTTP exception will be raised.
* @param integer the ID of the model to be loaded
*/
public function loadModel($id)
{
$model=Details::model()->findByPk($id);
if($model===null)
throw new CHttpException(404, The requested page does not exist. );
return $model;
}
/**
* Performs the AJAX validation.
* @param CModel the model to be validated
*/
protected function performAjaxValidation($model)
{
if(isset($_POST[ ajax ]) && $_POST[ ajax ]=== details-form )
{
echo CActiveForm::validate($model);
Yii::app()->end();
}
}
}
<强度/强度 > 格式代码 强 >
<div class="form">
<?php $form=$this->beginWidget( CActiveForm , array(
id => details-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, id ); ?>
<?php echo $form->textField($model, id ); ?>
<?php echo $form->error($model, id ); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model, name ); ?>
<?php $this->widget( zii.widgets.jui.CJuiAutoComplete , array(
name => test1 ,
value => test21 ,
source =>$this->createUrl( details/autocompleteTest ),
// additional javascript options for the autocomplete plugin
options =>array(
showAnim => fold ,
),
));
?>
<?php echo $form->error($model, name ); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model, phone ); ?>
<?php echo $form->textField($model, phone ); ?>
<?php echo $form->error($model, phone ); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model, email ); ?>
<?php echo $form->textField($model, email ); ?>
<?php echo $form->error($model, email ); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton($model->isNewRecord ? Create : Save ); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->
Thanks Devendar