firstorNew()
此函数将从数据库中返回第一条记录,或实例化数据库中尚不存在的新模型实例。因此,如果要检查实例是从数据库拉取的,或者它是否是新实例,则可以检查模型上的属性(不是函数)。exists
if ($user->exists) {
// user already exists and was pulled from database.
} else {
// user created from 'new'; does not exist in database.
}
最初的问题是关于,但很多人似乎也来这里是为了, 是不同的,并且需要不同的检查。firstOrNew()
firstOrCreate()
firstOrCreate()
firstorCreate()
此函数将从数据库中返回第一条记录,或在数据库中创建新记录并返回该记录。由于数据库中将存在新创建的记录,因此无法检查该属性,因为它在这两种情况下都为 true。但是,您可以检查酒店。如果当前模型实例刚刚在数据库中创建,则此属性将为 true;如果当前模型实例已在数据库中,则此属性为 false。exists
wasRecentlyCreated
if ($user->wasRecentlyCreated) {
// user just created in the database; it didn't exist before.
} else {
// user already existed and was pulled from database.
}