thinkphp5 model层的构造函数问题

今天遇到一个很不容易搞得问题,就是用tp5开发的时候,不管我怎么用model获取数据,都说我没有这个属性,最后查底层代码,发现我创建model文件的时候,写了一个构造函数,继承了\thinkphp\Model, 也运行了父类的构造函数,但是有个小地方没有注意,就是构造函数的传参,父类的Model是这样的__construct($data=[]),  这个是tp底层model的构造函数,大概意思就是每当查询到数据,new model($data)  的时候,程序会自动把查询的自动转换成关系对象,就是这个$data没有传参进来。搞了我半天。哎。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于 ThinkPHP5 的跨域问题,你可以尝试以下几种解决方案: 1. 在应用配置中设置跨域请求头:在 `config` 目录下的 `app.php` 文件中,找到 `response` 配置项,将其中的 `'header' => []` 修改为以下内容: ```php 'header' => [ 'Access-Control-Allow-Origin' => '*', 'Access-Control-Allow-Methods' => 'GET, POST, PUT, DELETE, OPTIONS', 'Access-Control-Allow-Headers' => 'Origin, X-Requested-With, Content-Type, Accept', ], ``` 这样设置之后,所有来源的请求都将被允许访问。 2. 使用中间件处理跨域请求:可以自定义一个中间件来处理跨域请求。首先,在 `app/middleware` 目录下创建一个新的中间件文件,例如 `CorsMiddleware.php`,然后在该文件中编写处理跨域请求的逻辑,示例如下: ```php <?php namespace app\middleware; class CorsMiddleware { public function handle($request, \Closure $next) { header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS'); header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept'); return $next($request); } } ``` 最后,在 `app/middleware.php` 文件中注册该中间件: ```php <?php return [ ... app\middleware\CorsMiddleware::class, ]; ``` 这样设置之后,所有经过中间件的请求都将被添加跨域请求头。 3. 使用第三方库:你还可以使用第三方库来处理跨域问题,例如使用 `think-cors` 库。在 `composer.json` 文件中添加该库的依赖: ```json "require": { ... "topthink/think-cors": "^2.0" }, ``` 然后执行 `composer update` 命令安装更新依赖。接下来,在应用配置的 `middleware` 配置项中添加 Cors 中间件: ```php 'middleware' => [ ... \think\middleware\Cors::class ] ``` 以上是几种常见的解决 ThinkPHP5 跨域问题的方法,你可以根据具体情况选择适合你的方式来进行处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值