Mrcdh技术博客 Mrcdh技术博客
首页
  • Html5
  • Javascript
  • Nodejs
  • electron
  • Android
  • 微信公众号
  • 框架
  • 其他
  • Mysql
  • PHP
  • Python
  • java
  • Gulp
  • 其它
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Mrcdh

全栈开发小学生
首页
  • Html5
  • Javascript
  • Nodejs
  • electron
  • Android
  • 微信公众号
  • 框架
  • 其他
  • Mysql
  • PHP
  • Python
  • java
  • Gulp
  • 其它
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • ThinkPHP

    • thinkphp消息队列think-queue的基本使用
    • tp5自定义命令行
    • ThinkPHP常见问题
      • tp5 临时关闭layout布局
      • tp5 允许跨域请求
      • 获取当前域名及根路径
      • CORS 跨域
      • 记录日志发现失效
  • FastAdmin

  • laravel

  • laravel-jetstream.vue

  • laravel常用扩展包

  • 《PHP框架》
  • ThinkPHP
mrcdh
2020-10-23
目录

ThinkPHP常见问题

# tp5 临时关闭layout布局

<!-- 在模板的顶部加入 {__NOLAYOUT__} 就没问题了 -->
{__NOLAYOUT__}
<!DOCTYPE html>
<html>
  ·······
</html>
1
2
3
4
5
6

# tp5 允许跨域请求

在 common 中的 behavior 文件夹新建一个文件,名字为Cors,在Cors中写入代码

<?php
namespace app\common\behavior;
use think\Response;
class Cors
{
  public function run(&$dispatch){
    $host_name = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : "*";
    $headers = [
      "Access-Control-Allow-Origin" => $host_name,
      "Access-Control-Allow-Credentials" => 'true',
      "Access-Control-Allow-Headers" => "X-Token,x-uid,x-token-check,x-requested-with,content-type,Host"
    ];
    if($dispatch instanceof Response) {
      $dispatch->header($headers);
    } else if($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
      $dispatch['type'] = 'response';
      $response = new Response('', 200, $headers);
      $dispatch['response'] = $response;
    }
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

然后在 tags 中写入:

<?php
// 应用行为扩展定义文件
return [
  // 应用初始化
  'app_init'     => [],
  // 应用开始
  'app_begin'    => [
    'app\\common\\behavior\\Cors'
  ],
  // 模块初始化
  'module_init'  => [],
  // 操作开始执行
  'action_begin' => [],
  // 视图内容过滤
  'view_filter'  => [],
  // 日志写入
  'log_write'    => [],
  // 应用结束
  'app_end'      => [
    'app\\common\\behavior\\Cors'
  ],
];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 获取当前域名及根路径

function base_url()
{
    $request = Request::instance();
    $subDir = str_replace('\\', '/', dirname($request->server('PHP_SELF')));
    return $request->scheme() . '://' . $request->host() . $subDir . ($subDir === '/' ? '' : '/');
}
1
2
3
4
5
6

# CORS 跨域

  @header('Access-Control-Allow-Origin: *');
  @header("Access-Control-Allow-Headers: Authorization,Origin, X-Requested-With, Content-Type, Accept");
  @header('Access-Control-Allow-Methods: POST,GET');
  if (request()->isOptions()) {
    exit();
  }
1
2
3
4
5
6

# 记录日志发现失效

检查下如果中间有die或exit中断都不记录日志,日志是请求结束时才会记录

#php#Thinkphp#tp
上次更新: 2023/09/22, 16:54:32
tp5自定义命令行
Fastadmin生成树型结构

← tp5自定义命令行 Fastadmin生成树型结构→

最近更新
01
uniapp常见问题
03-19
02
Vue3项目搭建
12-25
03
使用pnpm的monorepo组织项目
11-01
更多文章>
Theme by Vdoing | Copyright © 2020-2025 Mrcdh | 苏ICP备2020058908号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×