PHP(Yii)框架中TbModal组件无法正常运行如何解决?
报错修复及功能实现方案
1. 核心报错修复
你触发的Alias "bootstrap.widgets.TbModal" is invalid报错为组件引用路径错误导致:从你后续TbButton引用的booster.widgets命名空间可判断,项目集成的是YiiBooster扩展,并非旧版Yii Bootstrap组件,修改模态框初始化代码即可解决:
将原代码:
<?php $this->beginWidget('bootstrap.widgets.TbModal', array(
替换为:
<?php $this->beginWidget('booster.widgets.TbModal', array(
2. 弹窗功能逻辑修复
路径修正后还需要调整以下配置才能实现点击按钮弹出表单的需求:
- 调整Clone按钮配置,绑定弹窗触发事件,同时修正原代码中写错的配置键名
option为options:
'clone'=>array( 'id'=>'clone-dashboard-button', 'label'=>'Clone', 'title'=>'Clone', 'url'=>'#', 'options'=>array( 'rel'=>'tooltip', 'data-toggle'=>'modal', 'data-target'=>'#clone-form', // 绑定对应模态框的ID 'title'=>'Clone' ), ),
- 修正模态框内容区域的类名错误:原代码中
model-body为拼写错误,修改为modal-body才能正常加载样式。 - 调整模态框底部的提交按钮配置:
buttonType不存在Clone有效值,若需要提交表单可设置为submit;- 模态框内无法直接获取列表行的
$data->id,可在点击Clone按钮时将对应行ID存入data属性,打开模态框时赋值给表单隐藏域传递给后端即可。
内容的提问来源于stack exchange,提问作者Malgosh
相关产品推荐
相关产品推荐

