अपवाद दिखा रहा है cjuiautocomplete पर काम करना

मैंने टी स्रोत से कोड की कोशिश की

स्रोत कोड जिसे मैंने CJUIAutoComplete के लिए उपयोग किया

गलती कहां नहीं मिल रही है त्रुटि के रूप में दिखाए गए त्रुटि कृपया मेरी मदद करें मैं वाईआई ढांचे के लिए और डिबगिंग के लिए भी नया हूं।

यहां मेरा त्रुटि लॉग चला गया है

2012/05/25 06:07:28 [error] [exception.CHttpException.403] exception 'CHttpException' with message 'You are not authorized to perform this action.' in C:\wamp\yii\framework\web\auth\CAccessControlFilter.php:157 

Stack trace:
#0 C:\wamp\yii\framework\web\auth\CAccessControlFilter.php(120) CAccessControlFilter->accessDenied(Object(CWebUser), 'You are not aut...')
#1 C:\wamp\yii\framework\web\filters\CFilter.php(39) CAccessControlFilter->preFilter(Object(CFilterChain))

#2 C:\wamp\yii\framework\web\CController.php(1146): CFilter->filter(Object(CFilterChain))
#3 C:\wamp\yii\framework\web\filters\CInlineFilter.php(59) CController->filterAccessControl(Object(CFilterChain))


#4 C:\wamp\yii\framework\web\filters\CFilterChain.php(131) CInlineFilter->filter(Object(CFilterChain))

#5 C:\wamp\yii\framework\web\CController.php(292): CFilterChain->run()

#6 C:\wamp\yii\framework\web\CController.php(266): CController->runActionWithFilters(Object(CInlineAction), Array)

#7 C:\wamp\yii\framework\web\CWebApplication.php(276): CController->run('autocompleteTes...')

#8 C:\wamp\yii\framework\web\CWebApplication.php(135): CWebApplication->runController('details/autocom...')

#9 C:\wamp\yii\framework\base\CApplication.php(162): CWebApplication->processRequest()

#10 C:\wamp\www\myapp\index.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,
)); ?>

    
Fields with * are required.

<?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 -->

धन्यवाद Devendar

0
जोड़ा
विचारों: 1

3 उत्तर

आपको अपना विवरण नियंत्रक अपडेट करना होगा:

array('allow', 
     //allow authenticated user to perform 'create', 'update' and 'autocompleteTest' actions
      'actions'=>array('create','update', 'autocompleteTest'),
      'users'=>array('@'),
),
1
जोड़ा
@ सेगी उत्तर के लिए धन्यवाद - लेकिन अभी भी एक ही त्रुटि लॉग दिखा रहा है
जोड़ा लेखक Devendar, स्रोत
मैं accessrules में जोड़ा - लेकिन त्रुटि लॉग में भी एक ही संदेश
जोड़ा लेखक Devendar, स्रोत
मैंने actionCutstroller में कार्रवाई के तहत उपरोक्त कोड जोड़ा AututompleteTest() फ़ंक्शन - क्या यह सही है?
जोड़ा लेखक Devendar, स्रोत

नियंत्रक कोड:

नाम मॉडल की विशेषता है (डेटाबेस तालिका)

public function actionAutoCompleteLookup() {
    $res =array();

    if (isset($_GET['term'])) {

        $qtxt ="SELECT name FROM customer WHERE name LIKE :name";
        $command =Yii::app()->db->createCommand($qtxt);
        $command->bindValue(":name", '%'.$_GET['term'].'%', PDO::PARAM_STR);
        $res =$command->queryColumn();
    }

    echo CJSON::encode($res);
    Yii::app()->end();
}

कोड देखें

यूआरएल बनाएं - नियंत्रक का नाम/एक्टिन (कंट्रोलर में लिखा गया फ़ंक्शन नाम)

        <?php $this->widget('zii.widgets.jui.CJuiAutoComplete', array(
    'name'=>'test2',
    'source'=>$this->createUrl('Customer/AutoCompleteLookup'),

             'options'=>array(
             'showAnim'=>'fold',
              ), 
));
    ?>

Stackoverflow के लिए धन्यवाद

0
जोड़ा

इसे अपने लिए बहुत आसान कोशिश करें ..

public function actionAutoCompleteLookup()
        {
           if(Yii::app()->request->isAjaxRequest && isset($_GET['q']))
           {

              $name = $_GET['q']; 

               $qtxt ="SELECT name FROM details WHERE name LIKE '%".$name."%'";
               $command =Yii::app()->db->createCommand($qtxt);

               $userArray =$command->queryColumn();

              $returnVal = '';
              foreach($userArray as $userAccount)
              {
                 $returnVal .= $userAccount->getAttribute('first_name').'|'
                                             .$userAccount->getAttribute('user_id')."\n";
              }
              echo $returnVal;
           }
        }

और इस तरह के दृश्य कोड में ..

<?php $this->widget('CAutoComplete',
          array(
                         //name of the html field that will be generated
             'name'=>'name', 
                       //replace controller/action with real ids
             'url'=>array('detail/AutoCompleteLookup'), 
             'max'=>10, //specifies the max number of items to display

                         //specifies the number of chars that must be entered 
                         //before autocomplete initiates a lookup

             ));
    ?>

इसका काम ठीक है ...

0
जोड़ा
# 3 सी: \ wamp \ yii \ framework \ web \ filter \ CInlineFilter.php (5 9): CController-> filterAccessControl (ऑब्जेक्ट (CFilterChain)) # 4 सी: \ wamp \ yii \ framework \ web \ filter \ CFilterChain.php (131): CInlineFilter-> फ़िल्टर (ऑब्जेक्ट (CFilterChain)) # 5 सी: \ wamp \ yii \ framework \ web \ CController.php (2 9 2): CFilterChain-> रन() # 6 सी: \ wamp \ yii \ framework \ web \ CController.php (266): CController-> runActionWithFilters (ऑब्जेक्ट (CInlineAction), ऐरे) # 7 सी: \ wamp \ yii \ framework \ web \ CWebApplication.php (276): CController-> रन ('AutoCompleteLoo। .. ')
जोड़ा लेखक Devendar, स्रोत
आपकी मदद दोस्त के लिए धन्यवाद - आखिरकार मुझे यह मिला
जोड़ा लेखक Devendar, स्रोत
कृपया मुझे अपना आईडी दें - मैं कुल कोड भेजूंगा
जोड़ा लेखक Devendar, स्रोत
यह यूआर आईडी fb में है: owais.iqbal.357
जोड़ा लेखक Devendar, स्रोत
कृपया एक बार मेरे sys में लॉगिन करें या फिर मैं कुल ऐप कोड भेज सकता हूं
जोड़ा लेखक Devendar, स्रोत
teamviewr - मुझे अपना व्यक्तिगत आईडी दें या फिर मेरी आईडी है - devendar.gona gmail.com पर
जोड़ा लेखक Devendar, स्रोत
मित्र अगर आप स्वतंत्र हैं - कृपया एक बार मेरे sys में लॉगिन करने का प्रयास करें - मैंने यहां 2 दिनों से मारा
जोड़ा लेखक Devendar, स्रोत
फिर भी एक ही त्रुटि दोस्त
जोड़ा लेखक Devendar, स्रोत
# 8 सी: \ wamp \ yii \ framework \ web \ CWebApplication.php (135): CWebAplication-> रन कंट्रोलर ('विवरण/ऑटोकॉम ...') # 9 सी: \ wamp \ yii \ framework \ base \ CApplication.php (162): CWebAplication-> processRequest() # 10 C: \ wamp \ www \ myapp \ index.php (13): CAplication-> run() # 11 {मुख्य} REQUEST_URI =/myapp/index.php? R = विवरण/स्वत: पूर्ण लुकअप और क्यू = और zwnj; डी और सीमा = 10 और टाइमस्टैम और zwnj; पी = 1337932062468 HTTP_REFERER = localhost/myapp /index.php?r=details/create
जोड़ा लेखक Devendar, स्रोत
2012/05/25 07:47:42 [त्रुटि] [अपवाद। CHttpException.403] संदेश के साथ अपवाद 'CHttpException' 'आप इस क्रिया को करने के लिए अधिकृत नहीं हैं।' सी में: \ wamp \ yii \ framework \ web \ auth \ CAccessControlFilter.php: 157 स्टैक ट्रेस: ​​# 0 सी: \ wamp \ yii \ framework \ web \ auth \ CAccessControlFilter.php (120) और zwnj;: CAccessControlFilter-> accessDenied (ऑब्जेक्ट (CWebUser), 'आप ऑटो नहीं हैं ...') # 1 सी: \ wamp \ yii \ framework \ web \ filter \ CFilter.php (39): CAccessControlFilter-> प्रीफ़िल्टर (ऑब्जेक्ट (CFilterChain)) # 2 सी: \ wamp \ yii \ framework \ web \ CController.php (1146): CFi
जोड़ा लेखक Devendar, स्रोत
मैं डीबी नाम का उपयोग कर रहा हूं - विवरण - नियंत्रक का नाम विवरणController.php है और _form.php फ़ाइल में जोड़ा गया कोड कोड है। मुझे डीबी टेबल विशेषताएँ आईडी 1, आईडी, नाम, फोन, ईमेल हैं।
जोड़ा लेखक Devendar, स्रोत
हाँ दोस्त मैंने लिखा था
जोड़ा लेखक Devendar, स्रोत
अगर मैं बदल गया (नियंत्रण नाम/कार्रवाई) - अधिकृत नहीं दिखा रहा है
जोड़ा लेखक Devendar, स्रोत
# 3 {मुख्य} REQUEST_URI =/myapp/index.php? R = admin/autoCompleteLookup और q = de & zwnj; और सीमा = 10 और timestamp = & zwnj; 1337928948219 HTTP_REFERER = localhost/myapp/index.php? r = विवरण/बनाएँ
जोड़ा लेखक Devendar, स्रोत
मैंने इसकी प्रतिलिपि बनाई है - यह त्रुटि त्रुटि लॉग में दिखा रही है 2012/05/25 06:55:48 [त्रुटि] [अपवाद। CHttpException.404] संदेश 'संदेश' के साथ अपवाद 'CHttpException' 'अनुरोध को हल करने में असमर्थ' व्यवस्थापक/स्वत: पूर्ण Lookup "। ' सी में: \ wamp \ yii \ framework \ web \ CWebApplication.php: 280 स्टैक ट्रेस: ​​# 0 सी: \ wamp \ yii \ framework \ web \ CWebApplication.php (135): CWebAplication-> runController ('admin/AutoCompl। .. ') # 1 सी: \ wamp \ yii \ framework \ base \ CApplication.php (162): CWebAplication-> processRequest() # 2 C: \ wamp \ www \ myapp \ index.php (13): CAplication-
जोड़ा लेखक Devendar, स्रोत
तो अब आपको क्या त्रुटि मिलती है .. त्रुटि कॉपी करें
जोड़ा लेखक Owais Iqbal, स्रोत
देखने के लिए ... इस विजेट का उपयोग फॉर्म के बाहर करें .. और फिर जांचें ...
जोड़ा लेखक Owais Iqbal, स्रोत
आपने इस तरह लिखा है .. 'url' => सरणी (विवरण/स्वत: पूर्ण लुकअप),
जोड़ा लेखक Owais Iqbal, स्रोत
मैं आपके sys freind में कैसे लॉगिन कर सकता हूं?
जोड़ा लेखक Owais Iqbal, स्रोत
ध्यान में गलत यूआरएल दें ... यूआरएल को 'url' => सरणी ('नियंत्रक का नाम/स्वत: पूर्ण लुकअप') को सही करें;
जोड़ा लेखक Owais Iqbal, स्रोत
क्षमा करें freind .. मैंने अपने कोड की जांच की है .. ठीक से चल रहा है .. तो मुझे लगता है कि आपको अपनी कॉन्फ़िगरेशन फ़ाइल में कुछ समस्या है या कुछ और ..
जोड़ा लेखक Owais Iqbal, स्रोत
लॉल मेरी आईडी नहीं है :)
जोड़ा लेखक Owais Iqbal, स्रोत