出现这种问题的原因是因为TP框架默认配置的是内置模板,使用smarty后找不到模板路径,这时需要自己在项目配置文件中配置一下
解决如下:
Success和error方法都有对应的模板,并且是可以设置的,默认的设置是两个方法对应的模板都是:
1 2 3 4 | //默认错误跳转对应的模板文件 'TMPL_ACTION_ERROR' => THINK_PATH . 'Tpl/dispatch_jump.tpl'; //默认成功跳转对应的模板文件 'TMPL_ACTION_SUCCESS' => THINK_PATH . 'Tpl/dispatch_jump.tpl'; |
这时我们应该在自己的项目配置中这样设置一下
1 | 'TMPL_ACTION_SUCCESS' => 'Tpl/message', |
我这里是在自己项目中新建了一个message的模板文件(只是把默认模板dispatch_jump复制了一份),配置里面自然是Tpl/message
然后还需要把模板文件meaage.html中的变量$meaage,$jumpUrl等修改成smarty的表达方式,见下图:
这个时候我们在控制器中调用success()
1 | $this->success('修改成功',U('goods/showlist')); |
Ok页面跳转成功。大家不妨去试一下。
这里附上TP3.2.3手册中的跳转说明:http://www.kancloud.cn/manual/thinkphp/1720
转载请注明:Li Jianwei's Blog » ThinkPHP框架结合smarty模板后使用 success()后报错解决