Laravel自定义主键ticketID显示异常问题求助
解决思路
修正Ticket模型的主键配置
Laravel默认主键为自增整数类型,即使你在数据库中将ticketID设为字符串,若模型未明确配置主键类型,框架会自动将字段值转换为整数,导致字符串从第一个非数字字符处截断(比如6045e16d8db80会被转成6045)。在
Ticket模型中添加以下配置:class Ticket extends Model { // 指定自定义主键字段 protected $primaryKey = 'ticketID'; // 声明主键为字符串类型 protected $keyType = 'string'; // 关闭主键自增(因为我们手动生成ticketID) public $incrementing = false; // 其他必要配置,比如可填充字段 protected $fillable = ['ticketID', 'sujet', 'description', 'status', 'Priorite', 'user_id']; }确认数据库字段类型
确保数据库中ticketID字段的类型为VARCHAR(或CHAR),长度至少为13位(uniqid()默认生成13位字符串),避免因字段长度不足导致存储或显示异常。
内容的提问来源于stack exchange,提问作者ELMEHDI ACHAHED
相关产品推荐
相关产品推荐

