本文的目的在于记录一些在 Thinkphp 使用上遇到的一些问题,固成此文。
如果也能帮到路过的其他人,那就太好了。
1)在 get 列表查询方法时,参数类型需要都为字符串,而不是能是 int/bool 等类型
例如下面的例子,例如我们有一个 Demo 类内有一个状态字段 status。
当我们需要查询 status 的状态的时(实际上 status 在数据中也是 tinyint(1)), 如果用了 int 去标注 status 的类型的时候是无法查询到的。
use think\Model;
class Demo extends Model{
$schema = [
"status" => "intger",
"create_at"=>"timestamp",
"update_at"=>"timestamp"
]
}
public function index(int $status): Json {
$query = Demo::page($current, $pageSize)
->order("create_at", "desc");
if ($status != null) {
$query->where("status", $status);
}
// 此时返回的参数将是空的
return json($query->select());
}
所以在 get 查询的时候,无论数据库内的字段是什么类型都应该标注为 string 类型。
public function index(string $status): Json {
$query = Demo::page($current, $pageSize)
->order("create_at", "desc");
if ($status != null) {
$query->where("status", $status);
}
return json($query->select());
}
只有这样,才可以正确查询的相关的数据列表