php - 集中文本无法正常工作(Yii2 框架)
问题描述
我想从另一个表中集中一些文本并将其放在一个新字段中。
$model1 = new CourseDetails();
$model1->course_shortform= CourseDetails::find()->select('course_shortform')->where(['course_name'=>$model->course_name]);
然后使用下面的代码,我能够从另一个表中获取值来填写字段,如下所示:
$model->intake_no = $model1->course_shortform;
一切都很顺利,直到我想为摄入量没有列添加一些文本:
$model->intake_no = $model1->course_shortform . "This is new text" ;
系统没有显示错误,但会显示如下文本:
我想知道是否有一些替代方法来集中文本,但我无法弄清楚。如果有人可以提供帮助,我会很高兴。
解决方案
您正在创建CourseDetails
模型的新实例,然后创建一个查询(的实例ActiveQuery
),用于选择course_shortform
该查询并将其分配到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();
推荐阅读
- mysql - 我需要从我的表中删除不同的行
- c# - 动态创建到 WPF 表单的用户控件上的按钮单击事件
- karate - 空手道 API 函数/关键字用传递的参数替换 JSON 占位符键
- javascript - react-scripts 测试引发与正在测试的组件无关的 TypeError
- linux - 每次更改 bashrc 目录时列出所有文件的脚本?
- c# - 将非 void 方法声明为 lambda
- git - Git 忽略已编译的 CSS,但保留最新版本的生产就绪状态
- vhdl - 用 Yosys 合成 verilog
- java - 测试 java 程序是否调用 System.exist - 不退出 Junit
- angular - pouchdb-find 操作很慢