tp5 不能嵌套使用模板变量么?

发布于 2022-09-12 04:50:30 字数 1450 浏览 16 评论 0

新手学习tp5
有两个表
teacher:id name username
klass:id name teahcer_id

现在需要在模板页面循环输出klassd的内容,其中,希望把klass里面的teacher_id转换成teacher里面的name来显示。

正常情况下:
$klass->teahcer_id 返回的是id
如果想得到是teacher.name 必须再去查teacher

用klass的字段作为查询条件,放到teacher里面去查询name.
想到的是封装成一个函数:

public function getTeacher($teacher_id){
$teacher = TeacherModel::get($teacher_id);
return  $teacher->name; 
}

这个方法放哪里呢,因为在模板里面是循环输出klass的内容,

 {volist id="Klass" name="Klasses"}
 <tr>
 <td>{$i}</td>
 <td>{$Klass.id}</td>
 <td>{$Klass.name}</td>
 <td>{$Klass->getTeacher({$Klass.teacher_id})}</td>
 <td>
 <a
 type="button"
 class="btn btn-warning"
 href="{:url('delete?id='.$Klass->getData('id'))}"
 >删除</a>
 <a
 type="button"
 class="btn btn-info"
 href="{:url('edit?id='.$Klass->getData('id'))}"
 >编辑</a
 >
 </td>
 </tr>
 {/volist}
 </tbody>
 </table>
 {$Klasses->render()}

所以方法应该放在klass模型里面:

use app\index\model\Teacher as TeacherModel;
class Klass extends Model
{
 public function getTeacher($teacher_id)
 {
 $Klass = TeacherModel::get($teacher_id);
 return $Klass['name'];
 }
}

然后在模板内这样调用了:

{$Klass->getTeacher({$Klass.teacher_id})}

发现最后渲染的结果:
{$Klass->getTeacher(1)}
{$Klass->getTeacher(2)}
之类的。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

懷念過去 2022-09-19 04:50:30

啊,我自己是。。。。
模板调用应该是这样的:

{$Klass->getTeacher($Klass.teacher_id)}

最里面的{}不需要了.....

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文