zoukankan      html  css  js  c++  java
  • Eloquent中一些其他的create方法

    firstOrCreatefirstOrNew#

    还有两种其它方法,你可以用来通过属性批量赋值创建你的模型:firstOrCreate 和firstOrNewfirstOrCreate 方法将会使用指定的字段/值对,来尝试寻找数据库中的记录。如果在数据库中找不到模型,则会使用指定的属性来添加一条记录。

    firstOrNew 方法类似 firstOrCreate 方法,它会尝试使用指定的属性在数据库中寻找符合的纪录。如果模型未被找到,将会返回一个新的模型实例。请注意 firstOrnew 返回的模型还尚未保存到数据库。你需要通过手动调用save 方法来保存它:

    // 通过name属性检索航班,当结果不存在时创建它...
    $flight = AppFlight::firstOrCreate(['name' => 'Flight 10']);
    
    // 通过name属性检索航班,当结果不存在的时候用name属性和delayed属性去创建它
    $flight = AppFlight::firstOrCreate(
        ['name' => 'Flight 10'], ['delayed' => 1]
    );
    
    // 通过name属性检索航班,当结果不存在时实例化一个新实例...
    $flight = AppFlight::firstOrNew(['name' => 'Flight 10']);
    
    // 通过name属性检索航班,当结果不存在的时候用name属性和delayed属性去实例化一个新实例
    $flight = AppFlight::firstOrNew(
        ['name' => 'Flight 10'], ['delayed' => 1]
    );

    updateOrCreate#

    其次,你可能会碰到模型已经存在则更新,否则创建新模型的情形,Laravel 提供了一个 updateOrCreate 方法来一步完成该操作,类似 firstOrCreate 方法, updateOrCreate 方法会持久化模型,所以无需调用 save() :

    // If there's a flight from Oakland to San Diego, set the price to $99.
    // If no matching model exists, create one.
    $flight = AppFlight::updateOrCreate(
        ['departure' => 'Oakland', 'destination' => 'San Diego'],
        ['price' => 99]
    );
    参考地址:https://d.laravel-china.org/docs/5.5/eloquent#mass-assignment
  • 相关阅读:
    web中状态码及请求方式
    访问服务器时一直在转圈,等待localhost响应
    Address already in use: JVM_Bind 端口被占用的几个解决办法
    Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean (default-clean)
    taotao商城
    Dubbo的学习
    taotao商城
    sql中有一些保留字,当你的字段名是它的保留字时,这个时候sql语句的字段不加``就会报错
    ssm学习的第一个demo---crm(4)
    ssm学习的第一个demo---crm(3)
  • 原文地址:https://www.cnblogs.com/qq1069284034/p/7920351.html
Copyright © 2011-2022 走看看