Laravel 雄辩的模型,非日期字段上的非法偏移类型错误
当我尝试创建UserFailedLogin对象时,我得到一个非法的偏移类型错误。当我仔细观察时,它似乎试图将ip地址列强制转换为日期。该列不是DB中的日期,也不是模型的$date中的日期 这是我的模型:Laravel 雄辩的模型,非日期字段上的非法偏移类型错误,laravel,attributes,eloquent,Laravel,Attributes,Eloquent,当我尝试创建UserFailedLogin对象时,我得到一个非法的偏移类型错误。当我仔细观察时,它似乎试图将ip地址列强制转换为日期。该列不是DB中的日期,也不是模型的$date中的日期 这是我的模型: class UserFailedLogin extends Model { public $timestamps = false; protected $table = 'user_failed_login'; protected $fillable = ['ip','email']; pro
class UserFailedLogin extends Model {
public $timestamps = false;
protected $table = 'user_failed_login';
protected $fillable = ['ip','email'];
protected $primaryKey = ['invalid_login_id'];
以下是我的create语句:
UserFailedLogin::create(['ip' => $request->ip(), 'email'=>$email,]);
我的错误:
Model.php第2759行中的ErrorException:
非法偏移类型
->ip()
不是一个函数,它是一个成员访问器,它应该是->ip
或->get('ip')
。也就是说,除非您创建了一个自定义的请求
类来实现IP
函数,尽管我看不出堆栈跟踪是这样的。->IP()
不是一个函数,它是一个成员访问器,它应该是->IP
或->get('IP')
。也就是说,除非您创建了一个自定义的Request
类,该类实现了IP
函数,尽管我不认为在给定堆栈跟踪的情况下是这样的。我认为问题在于您的主键是一个数组,而不仅仅是一个字符串
尝试将其更改为:
protected$primaryKey='invalid_login_id'代码>
getCasts查找的是字符串,而不是数组或对象。我认为问题在于主键是数组而不仅仅是字符串
尝试将其更改为:
protected$primaryKey='invalid_login_id'代码>
getCasts查找的是字符串,而不是数组或对象。出现此问题的原因是,雄辩者认为您的主键是复合主键,因为您将其添加到了数组中,在您的情况下,只需将主键设置为字符串,在您应该使用的真正复合主键中。我希望这对您有所帮助。出现此问题的原因是Elount认为您的主键是复合主键,因为您将其添加到了数组中,在您的情况下,只需将主键设置为字符串,在您应该使用的真正复合主键中。我希望这对您有所帮助。感谢您抽出时间查看我的问题。->ip()确实返回我的ip地址,但不管怎样,这都不是问题所在。当我硬编码值而不是调用任何ip函数时,仍然会出现错误。(事实上,在这两种情况下,我的ip都显示在堆栈轨迹中。)感谢您抽出时间查看我的问题。->ip()确实返回我的ip地址,但不管怎样,这都不是问题所在。当我硬编码值而不是调用任何ip函数时,仍然会出现错误。(事实上,在这两种情况下,我的ip都显示在堆栈轨迹中。)