1

私はextjs + Yiiで働いています。私のyiiアクションは次のとおりです。

public function actionCreateNew()
{
    $record=Qbquestionset::model()->findAllByAttributes(array("questionPaperId"=>1));

    foreach($record as $rec)
    {
        if($rec==NULL)
        {
            echo"Paper does not exists";
        }
        else
        {
            echo $rec->questionId;
            $record1=Qbquestion::model()->findByAttributes(array("questionId"=>$rec->questionId));
            echo "</br>". $record1->question;
            echo "</br>".CJSON::encode(array("Question"=>$record1->question));
        }

    }
}

この関数は質問を取得し、json 形式で送信します。extjs で、モデル、ビュー、コントローラー、ビューを as= Model= Question.js として作成しました

Ext.define('Balaee.controller.Question',
          {
    extend:'Ext.app.Controller',
    stores:['Question'],
    models:['Question','QuestionOption'],
    views:['question.Question','question.QuestionView'],
    init:function()
    {
        console.log("inside Question controller");


    },

             });

Store.js===

Ext.define('Balaee.store.Question', {
extend: 'Ext.data.Store',
model: 'Balaee.model.Question',
autoLoad: true,
proxy:{
    type: 'ajax',
    //url:'data/poll.json',
    api: {
        //read: 'data/question.json',
        read: 'http://localhost/NewQuestion/index.php?r=QuestionBank/qbpaper/CreateNew',
    },
    reader: {
        type: 'json',
        //root: 'questions',
    }
}
});

View=== questionView.js

Ext.define('Balaee.view.question.QuestionView',
{
    extend:'Ext.view.View',
    id:'QuestionViewId',
    alias:'widget.questionView',
    store:'Question',
    config:
    {
        tpl:'<tpl for=".">'+
            '<div id="main">'+
            '</br>'+
            '<b>Question :-</b> {Question}</br>'+
            //'<p>-------------------------------------------</p>'+

            //'<tpl for="options">'+     // interrogate the kids property within the data
                //'<p>&nbsp&nbsp<input type="radio" name="opt" >&nbsp{option}</p>'+
            //'</tpl></p>'+

            '</div>'+
            '</tpl>',
        itemSelector:'div.main',    
    }
});// 

そのため、URL に言及することで、yii アクションを store にバインドしています。しかし、ストアは値を取得していません。では、extjs ストアで yii optput を取得するには、どのような変更が必要なのでしょうか?

4

1 に答える 1

1

私が見ることができる1つの問題は、Yiiのアクションにあります。奇妙なものを返す一方で、JSONの結果を返す必要があります。

これを試して:

public function actionCreateNew()
{
    $record = Qbquestionset::model()->findAllByAttributes(array("questionPaperId" => 1));
    $result = array();
    foreach($record as $rec) {
        if ($rec != NULL) {
            $result[] = $record1->question;
        }
    }

    echo CJSON::encode(array(
        'success' => true,
        'root' => $result,
        'total' => count($result)
    ));
}

root: 'root'リーダーのプロパティも定義する必要があります。

于 2012-12-29T17:46:42.887 に答える