thinkphp

分类下相关文章

ThinkPHP 3.2 联表查询

使用 ThinkPHP 3.2 model 的联表查询。在官网文档中没有找到相关的介绍。 示例代码 $products = M("product")->join("category ON category.c_id = product.c_id") ->where("category.p_id = " . $category_id) ->field("product.p_id as p_id, name, description") ->select(); 安全问题 ThinkPHP ...

阅读全文...

thinkphp 3.2 插入数据

今天发现 thinkphp 3.2 不支持像 laravel 中的 create 新增数据。例如: M("tag")->create(array( "name" => "thinkphp", "created_at" => date("Y-m-d H:i:s"), )); 并没有报错,但是查看数据库里,并没有新增任何记录。 正确的做法是 M("tag")->data(array( "name&quo ...

阅读全文...

ThinkPHP 无法加载控制器:Admin

测试环境 Nginx + ThinkPHP 3.2 现象 访问网站前端页面时,一切显示正常。 但是,访问网站管理后台,即以 /admin 为前缀路径的页面时,部分页面报错。 显示报错的页面路径 目前发现的有两类路径错误: http://localhost/Admin/Index/Admin/page1.html 正确的路径应该是 http://localhost/Admin/page1.html http://localhost/Admin/Index/Admin/Admin/page2.html 正确的路径应该是 http://localhost/Admin/page2.html 报错信 ...

阅读全文...

thinkphp 3.2 模板 if 语法

thinkphp 3.2 模板 if 语法列表: 字符串比对 使用 eq / neq <if condition="$Think.session.site eq '阿里云'"> <h1>阿里云</h1> </if> ...

阅读全文...

ThinkPHP ORM 查询一条数据/查询多条数据

ThinkPHP ORM 查询方法: find 查询一条数据 select 查询多条数据 查询示例及返回的数据结构 $tag = M("tag")->where('id=' . $tag_id)->find(); 返回: array ( 'id' => '1', 'name' => 'ThinkPHP', ) $tag = M("tag")->where('id=' . $tag_id)->select(); 返回: array ( 0 => array ( 'id' => ...

阅读全文...

ThinkPHP controller 传递参数变量给模板

ThinkPHP 在渲染模板时,主要用到了两个函数: assign 将参数变量传递给模板 display 指定模板文件的名字,即使用哪个模板文件 controller 代码示例 $title = "大象笔记"; $content = "专注 ThinkPHP 开发 20 年"; $this->assign('title', $title); $this->assign('content', $content); $this->display('index'); 模板代码示例 Hello, {$title}! assign 传递数 ...

阅读全文...

同一站点电脑端域名与移动端域名独立时,实现自动相互跳转对应页面

当同一个站点,电脑端跟移动端是两套代码,而且域名还不同时,一定要做好自动相互跳转对应页面。 因为百度的搜素结果有一个严重的问题,就是 电脑端使用百度搜素会搜出来移动端的页面 移动端使用百度搜素会搜出 PC 端的页面 这种情况非常常见,甚至 PC 端百度的搜索结果还会出现 MIP 的页面,我觉得有点无法理解。 还有一种情况: PC 链接在手机打开,例如微信,会自动跳转到手机版的首页,这个体验非常不好。应该是跳转对应的手机页面。 需要优化的场景 场景一,手机上搜素,百度结果给出的是 PC 的页面链接,用户打开时,自动跳转对应的移动页面。 场景二,PC 上搜素,百度结果给出的是手机移动站的页面 ...

阅读全文...

ThinkPHP 根据请求参数进行组合查询

例如,默认是查询 status 为 1 的文章; 当请求参数中,包含分类 ID 时,查询条件再加上 category_id。 $where = array( 'status' => 1, ); if ($category_id != -1) { $where['category_id'] = $category_id; } $news = M("article") ->where($where) ->select(); ...

阅读全文...

ThinkPHP 模板 foreach 循环中使用 if 条件判断的注意事项

例如, if condition 中不能使用 $category_id eq $v.id 而应该是 $category_id eq $v['id'] 完整代码。 <foreach name="news_tab" item="v" key="k"> <li mid="{$v.id}" <if condition="$category_id eq $v['id']"> class="active" ...

阅读全文...

ThinkPHP Model 查询设置 offset

没有查 ThinkPHP 的文档,以为 ThinkPHP 的查询 offset 写法跟 Laravel 一样,就写成了 $articles = M("article")->where('status=1') ->order('id desc') ->offset($offset) ->limit($limit) ->select(); 结果报错 Think\Model:offset方法不存在! 看了一下文档,发现正确的写法应该是 $articl ...

阅读全文...

thinkphp 读取缓存失败,S 方法总是返回 bool(false)

我本地的 thinkphp 3.2.3 开发环境总是无法设置缓存,而线上生产环境则是好的。 S('test', 'hello'); dump(S('test')); 本地总是返回 bool(false)。 猜测是本地缓存文件的权限问题,也就是说设置缓存的时候,写入已经失败了。 因为,我们知道,设置缓存是允许失败的。毕竟缓存失败,并不应该影响正常服务的运行。例如,redis 挂了,不应该影响网站正常的运行。 测试了一下,确实是本地缓存文件的权限问题。 执行 sudo chmod 777 -R Web/Runtime/ 即可解决。 ...

阅读全文...

ThinkPHP 的缓存配置文件

要查找 ThinkPHP 项目的缓存配置文件的位置,可以搜素关键词 DATA_CACHE_TYPE grep DATA_CACHE_TYPE -r Web Web/Mobile/Conf/config.php: 'DATA_CACHE_TYPE' => 'File', Web/Zh/Conf/config.php: 'DATA_CACHE_TYPE' => 'File', 数据缓存类型 支持: File|Db|Apc|Memcache|Shmop|Sqlite|Xcache|Apachenote|Eaccelerator ThinkPHP 版本 3.2.3 ...

阅读全文...

thinkphp 的那些大写单字母简写的含义

S 缓存 M 数据表 大写字母 I 获取输入的查询变量 $search = strip_tags(trim(I('get.search'))); 参考 https://blog.csdn.net/weixin_43524620/article/details/85135158 ...

阅读全文...

thinkphp 查询字段设置别名

字段设置别名方法: M('language')->field('name1 as name')->select(); 测试环境 Thinkphp 版本 3.2.3 ...

阅读全文...

Nginx 下的 PHP 网站显示 "No input file specified."

一个 Thinkphp 的网站项目,在本地使用 Nginx 搭建开发环境。但是,其他 ThinkPHP 的项目都能正常显示网页,只有这个项目打开首页,始终显示 No input file specified. 在 Nginx 的 error log 中看到如下错误信息: 2019/09/18 16:48:14 [error] 3395#3395: *4 FastCGI sent in stderr: "PHP message: PHP Warning: Unknown: open_basedir restriction in effect. File(/home/zhongwe ...

阅读全文...