tp5 不能嵌套使用模板变量么?
新手学习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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
啊,我自己是。。。。
模板调用应该是这样的:
最里面的
{}
不需要了.....