集中文本功能不正常(Yii2 框架)
Concentrate text not function properly (Yii2 framework)
我想从另一个 table 中集中一些文本并将其放在一个新字段中。
$model1 = new CourseDetails();
$model1->course_shortform= CourseDetails::find()->select('course_shortform')->where(['course_name'=>$model->course_name]);
然后使用下面的代码,我能够从另一个 table 获取值来填写字段,如下所示:
$model->intake_no = $model1->course_shortform;
一切顺利,直到我想为 intake no 列添加一些文本:
$model->intake_no = $model1->course_shortform . "This is new text" ;
系统没有显示错误,但会显示如下文字:
我想知道是否有其他方法可以集中文本,但我想不通。如果有人能提供帮助,我会很高兴。
您错过了获取函数.. 对于模型应该是 ->one()
$model1 = new CourseDetails();
$model1= CourseDetails::find()
->select('course_shortform')
->where(['course_name'=>$model->course_name])
->one();
并且您不应该将模型分配给文本字段 var,这样您就不会在 $model 1->course_shortform 上而是在 $model1
上
您正在创建 CourseDetails
模型的新实例,然后您为 selecting course_shortform
创建一个查询(ActiveQuery
的实例)并将该查询分配给 course_shortform
属性 在你的代码中。
相反,您应该跳过这一行:
$model1 = new CourseDetails();
并且您应该使用您的查询来查找这样一个模型:
$model1 = CourseDetails::find()
->select('course_shortform')
->where(['course_name'=>$model->course_name])
->one();
或者如果您需要自己为$model1
创建实例,您应该使用scalar()
方法直接获取select返回的值。
$model1 = new CourseDetails();
$model1->course_shortform = CourseDetails::find()
->select('course_shortform')
->where(['course_name'=>$model->course_name])
->scalar();
我想从另一个 table 中集中一些文本并将其放在一个新字段中。
$model1 = new CourseDetails();
$model1->course_shortform= CourseDetails::find()->select('course_shortform')->where(['course_name'=>$model->course_name]);
然后使用下面的代码,我能够从另一个 table 获取值来填写字段,如下所示:
$model->intake_no = $model1->course_shortform;
一切顺利,直到我想为 intake no 列添加一些文本:
$model->intake_no = $model1->course_shortform . "This is new text" ;
系统没有显示错误,但会显示如下文字:
我想知道是否有其他方法可以集中文本,但我想不通。如果有人能提供帮助,我会很高兴。
您错过了获取函数.. 对于模型应该是 ->one()
$model1 = new CourseDetails();
$model1= CourseDetails::find()
->select('course_shortform')
->where(['course_name'=>$model->course_name])
->one();
并且您不应该将模型分配给文本字段 var,这样您就不会在 $model 1->course_shortform 上而是在 $model1
上您正在创建 CourseDetails
模型的新实例,然后您为 selecting course_shortform
创建一个查询(ActiveQuery
的实例)并将该查询分配给 course_shortform
属性 在你的代码中。
相反,您应该跳过这一行:
$model1 = new CourseDetails();
并且您应该使用您的查询来查找这样一个模型:
$model1 = CourseDetails::find()
->select('course_shortform')
->where(['course_name'=>$model->course_name])
->one();
或者如果您需要自己为$model1
创建实例,您应该使用scalar()
方法直接获取select返回的值。
$model1 = new CourseDetails();
$model1->course_shortform = CourseDetails::find()
->select('course_shortform')
->where(['course_name'=>$model->course_name])
->scalar();