您的位置:首页 > 编程语言 > PHP开发

ThinkPHP问题收集:模板中使用U方法时无法嵌套大括号,For标签,插入数据,新增的表字段缓存问题

2016-04-21 11:20 796 查看
ThinkPHP模板中使用U方法时无法嵌套大括号
需要在control里面用U方法赋值给变量传到模版如:{:U('/Blog/comment/',array('id'=>$id)}
$comment_url = U('/Blog/comment/',array('id'=>$id));
$this->assign('comment_url', $comment_url);
模版使用:
<a href="{$comment_url}">xxx</a>
=======================================
直接用:
$data['username'] = "xxx";
$data['nickname'] = "xxx";
$result = M("adm_activity")->add($data);
可能会出现缓存,插入相同的数据,需要用
$data = array();
$data['username'] = "xxx";
$data['nickname'] = "xxx";
或 $data = array({'username'=>"xxx",'nickname'=>"xxx"})
$result = M("adm_activity")->add($data);
========================================

由于ThinkPHP对数据库进行了缓存处理没有及时更新缓存对象,新增的表字段在进行增删改时可能会操作失败

解决的办法是直接删除Runtime文件夹下面的东西,让缓存重新生成(注意:必须把里面的文件夹也都删干净才行)

========================================
For标签 - ThinkPHP完全开发手册 - 3.1 http://doc.thinkphp.cn/manual/for.html 8.11 For标签
For标签用于实现for循环,格式为:
for标签(循环输出数据)
闭合 非闭合标签
属性 start(必须):循环变量开始值
end(必须):循环变量结束值
name(可选):循环变量名,默认值为i
step(可选):步进值,默认值为1
comparison(可选):判断条件,默认为lt
用法:
<for start="开始值" end="结束值" comparison="" step="步进值" name="循环变量名" >
</for>
开始值、结束值、步进值和循环变量都可以支持变量,开始值和结束值是必须,其他是可选。comparison 的默认值是lt;;name的默认值是i,步进值的默认值是1,举例如下:
<for start="1" end="100">
{$i}
</for>
解析后的代码是
for ($i=1;$i<100;$i+=1){
echo $i;
}
========================================

解决ThinkPHP require model 问题,原因是模型文件的后缀也是需要.class.php和控制器一样。如果只写了.php的话就会报无法找到的错误,require两次会报Cannot redeclare class错误

========================================

有其他问题再补充
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: