laravel - 我使用“表字段/列”作为 varchar 类型而不是整数类型。但为什么要修剪第一个 0(零)?
问题描述
这里,“Phone”是“Employee”表的字段,“Phone”类型是字符串/varchar。
步骤: 1)保存一个“员工”信息,电话=“01679420786”
移民:
public function up()
{
Schema::create('employees', function (Blueprint $table) {
$table->string('phone')->primary();
$table->string('name');
$table->string('designation');
$table->timestamps();
});
}
模型:
class Employee extends Model
{
protected $primaryKey = 'phone';
}
2)获取 Employee 然后 dd()
public function getEmployee()
{
$employee = Employee::get();
dd($employee[0]->phone);
return view('employee.showEmployeeList')->with('employee', $employee);
}
3)浏览器输出:1679420786
使用 Laravel 框架 6.0.3,PHP 版本:7.3.2
解决方案
您正在将模型的主键设置为phone
。在这种情况下,它是一个字符串。默认情况下,Laravel 期望这是一个整数,因此尝试将值转换为整数。这是0
从值的开头删除 。
为了解决这个问题,将以下属性添加到您的模型中。
protected $keyType = 'string';
这告诉 Laravel 主键不是整数,而是一个字符串,所以它会相应地转换它。
您的模型应如下所示:
class Employee extends Model
{
protected $primaryKey = 'phone';
protected $keyType = 'string';
}
推荐阅读
- open-policy-agent - 将我的策略 (policy.rego) bydfault 应用到我的 opa
- javascript - 请帮助我的 HTML 和 Javascript 任务
- javascript - 如何在 node.js 中获得与 Java .readUTF() 相同的结果?
- java - opencv java中的蒙版图像
- string - 在fortran中获取可变长度字符串列表的更好方法
- javascript - discord.js 数量增加但重置
- java - SpringMVC - Java.lang.IllegalStateException:Bean 名称既不是 BindingResult 也不是普通目标对象
- php - 根据 WooCommerce 中的类别和自定义文本字段添加到购物车验证
- php - php a href 显示 mysql 数据库中的数据并将其链接到新页面
- github - 如何为 Github 中的问题设置规则(自定义文本)?