以下代码将根据预期使用AJAX请求向我提供所有记录。不幸的是,我无法将一条选定的记录变成表格。我可以选择它们,而不是带它们(请看我的附件)。我假设templateResult
或templateSelection
中存在一些错误。
改述问题: “无法选择”意味着,我无法采用单一记录显示为公式。它就像狗的食物,不能被狗吃掉,因为手会一次又一次地被移走...... 希望这有助于理解我的问题。 P.S.:id_ba_xml_gelernter_beruf_1是模型的属性
以下是公式代码:
$url = \yii\helpers\Url::to ( [ 'berufe' ] );
?><?=
$form->field ( $model , 'id_ba_xml_gelernter_beruf_1' , [ 'addon' => [
'prepend' => [ 'content' => 'gelernter Beruf 1' ] ] ] )->widget ( \kartik\widgets\Select2::classname () , [
'options' => [ 'placeholder' => 'Berufe suchen ...' ] ,
'pluginOptions' => [
'allowClear' => true ,
'minimumInputLength' => 3 ,
'language' => [
'errorLoading' => new JsExpression ( "function () { return 'Waiting for results...'; }" ) ,
] ,
'ajax' => [
'url' => $url ,
'dataType' => 'json' ,
'data' => new JsExpression ( 'function(params) { return {q:params.term}; }' )
] ,
'escapeMarkup' => new JsExpression ( 'function (markup) { return markup; }' ) ,
'templateResult' => new JsExpression ( 'function(id_ba_xml_gelernter_beruf_1) { return id_ba_xml_gelernter_beruf_1.text; }' ) ,
'templateSelection' => new JsExpression ( 'function (id_ba_xml_gelernter_beruf_1) { return id_ba_xml_gelernter_beruf_1.text; }' ) ,
] ,
] )->label ( false );
这是ControllerCode工作得很好
public function actionBerufe( $q = null , $id = null ) {
\Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
$out = [ 'results' => [ 'id' => '' , 'text' => '' ] ];
if ( !is_null ( $q ) ) {
$query = new \yii\db\Query();
$query->select ( 'ID, Bezeichnung_neutral_kurz AS text' )
->from ( 'yii2_ba.ba_berufe' )
->where ( [ 'like' , 'Bezeichnung_neutral_kurz' , $q ] )
->limit ( 20 );
$command = $query->createCommand ();
$data = $command->queryAll ();
$out['results'] = array_values ( $data );
} elseif ( $id > 0 ) {
$out['results'] = [ 'id' => $id , 'text' => \common\modules\basis\models\BaBerufe::find ( $id )->Bezeichnung_neutral_kurz ];
}
return $out;
}