TP5.1记录

1,查询构造器的数组多字段批量查询对比(对于纯等于的数组条件查询没改变),例如:

//TP5.0
model('user')->where(['type'=>2,'username'=>['like','sumer%']])->select()->toArray();
//TP5.1
model('user')->where([['type','=',2],['username','like','sumer%']])->select()->toArray();

 

2,把不存在的模块访问统一指向一个空模块,在应用配置文件中设置empty_module参数,例如:

    // 默认的空模块名
    'empty_module'           => 'index',

3,如果你的扩展类库不希望放入系统默认的extend目录,在应用配置文件中设置root_namespace参数,例如:

'root_namespace' => [
    'my'  => '../application/extend/my/',
    'org' => '../application/extend/org/',
]

4,tp5.1默认主键为id,如果你没有使用id作为主键名,需要在模型中设置属性,因为tp5.1的模型不会自动识别主键,必须设置pk属性。

<?php
namespace app\index\model;

use think\Model;

class User extends Model
{
    protected $pk = 'uid';
}

5,tp5.1模型操作:

  • save方法返回影响的记录数,并且只有当before_insert或before_update事件返回false的时候返回false,从V5.1.6+版本开始统一返回布尔值。
  • delete方法返回影响的记录数,V5.1.6+版本开始返回布尔值。
  • V5.1.5+版本,模型增加了getOrFail方法用于查询,当查询的数据不存在的时候会抛出ModelNotFound异常。
  • V5.1.23+版本开始,可以使用findOrEmpty方法,当查询数据不存在的话,返回空模型而不是Null
  • 如果你是在模型内部获取模型数据,请不要使用$this->name的方式来获取数据,请使用$this->getAttr('name') 替代。

6,查询结果为数据集类型的,可使用模型的hidden/visible/append/withAttr方法进行数据集的输出处理,例如:

// 模型查询返回数据集对象
$list = User::where('id', '>', 0)->select();
// 对输出字段进行处理
$list->hidden(['password']) 
	->append(['status_text'])
    ->withAttr('name', function($value, $data) {
        return strtolower($value);
    });
dump($list);

7,模型中可设置只读字段,字段一旦写入,保护字段不被更改:

<?php
namespace app\index\model;

use think\Model;

class User extends Model
{
    protected $readonly = ['name', 'email'];
}

5.1版本支持动态设置只读字段,例如:

 // 保存更改后的用户数据
$user->readonly(['name','email'])->save();

8,一旦关闭调试模式,发生错误后不会提示具体的错误信息,如果你仍然希望看到具体的错误信息,那么可以在app.php文件中如下设置:

// 显示错误信息
'show_error_msg'        =>  true, 

9,判断查询的数据集是否为空:

$res = (new UserModel())->where([['numid','<>',0],['username','like','zhang%']])->field('numid,username')->select();
if($res->isEmpty()){
    echo '未查到1';
}else{
    echo '<pre>';print_r($res);
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值