查找的三个all get find
find的带条件 get获取所有 all获取所有
查找:这三个都是1行数据的
find进行$users->find(1);find(里面的是id)
first 方法返回集合中通过指定条件测试的第一个元素:
firstWhere 方法返回集合中含有指定键 / 值对的第一个元素:
查找:带or的是会抛出异常
firstOr
方法将会在查找到结果时返回首个结果,如果没有结果,将会执行给定的回调;
findOrFail方法会检索查询的第一个结果,如果未找到,将抛出异常;
firstOrFail方法会检索查询的第一个结果,如果未找到,将抛出异常;
插入:进行保存的 批量赋值的方法 firstOrCreate 和 firstOrNew
firstOrCreate 方法会通过给定的键 / 值对来匹配数据库中的数据。
如果在数据库中找不到模型,则将插入一条记录,其中包含第一个参数的属性以及可选的第二个参数的属性。
firstOrNew 方法像 firstOrCreate 方法一样尝试通过给定的属性查找数据库中的记录。
不过,如果 firstOrNew 方法找不到对应的模型,会返回一个新的模型实例。
注意 firstOrNew 返回的模型实例尚未保存到数据库中,你需要手动调用 save 方法来保存:
public function info10()
{
//如果没有就新增 有的话不变化
$stu=Student::firstOrCreate(
['name'=>'info10']
);
}
//允许批量赋值
public $fillable = array('name', 'age');
//不允许批量赋值的
public $guarded=array('id');
public function info11()
{
//如果没有就新增 有的话不变化
$stu=Student::firstOrNew(
['name'=>'info11']
);
$stu->save();
}
更新:updateOrCreate:存在修改不存在创建
你还可能遇到希望更新现有模型或在不存在的情况下则创建新的模型的情景。 Laravel 提供 updateOrCreate 方法来一步实现。 类似于 firstOrCreate 方法,updateOrCreate 持久化模型,因此无需调用 save():
// 如果有从奥克兰到圣地亚哥的航班,则价格定为99美元。
// 如果没匹配到存在的模型,则创建一个。
$flight = App\Flight::updateOrCreate(
['departure' => 'Oakland', 'destination' => 'San Diego'],
['price' => 99, 'discounted' => 1]
);