这里,“电话”是“员工”表的字段,“电话”类型是字符串/ varchar。
步骤:1)使用phone =“ 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)获取雇员,然后是dd()
public function getEmployee()
{
$employee = Employee::get();
dd($employee[0]->phone);
return view('employee.showEmployeeList')->with('employee', $employee);
}
3)浏览器中的输出:1679420786
使用Laravel Framework 6.0.3,PHP版本:7.3.2
您正在将模型的主键设置为phone
。在这种情况下,它是一个字符串。默认情况下,Laravel期望它是一个整数,因此正在尝试将该值转换为整数。这是从值的开头删除0
。
为了解决这个问题,将以下属性添加到模型中。
protected $keyType = 'string';
这告诉Laravel主键不是整数,而是一个字符串,因此它将相应地进行强制转换。
您的模型将如下所示:
class Employee extends Model
{
protected $primaryKey = 'phone';
protected $keyType = 'string';
}