美文网首页
Laravel的数据库操作之 Eloquent ORM

Laravel的数据库操作之 Eloquent ORM

作者: ozil_oo | 来源:发表于2019-02-20 16:53 被阅读0次

    创建模型之后,就是对模型就行CRUD了

    获取模型(Read)

    获取所有信息

    <?php
    
    use App\Flight;
    
    $flights = App\Flight::all();
    
    foreach ($flights as $flight) {
        echo $flight->name;
    }
    

    获取带约束信息

    $flights = App\Flight::where('active', 1)
                   ->orderBy('name', 'desc')
                   ->take(10)
                   ->get();
    

    获取单个模型/聚合结果

    // 通过主键获取模型...
    $flight = App\Flight::find(1);
    
    // 获取匹配查询条件的第一个模型...
    $flight = App\Flight::where('active', 1)->first();
    

    获取聚合结果

    $count = App\Flight::where('active', 1)->count();
    $max = App\Flight::where('active', 1)->max('price');
    

    插入(Create)\更新(Update)模型

    单个更新

    <?php
    
    namespace App\Http\Controllers;
    
    use App\Flight;
    use Illuminate\Http\Request;
    use App\Http\Controllers\Controller;
    
    class FlightController extends Controller{
        /**
         * 创建一个新的航班实例
         *
         * @param  Request  $request
         * @return Response
         * @translator laravelacademy.org
         */
        public function store(Request $request)
        {
            // 验证请求...
    
            $flight = new Flight;
    
            $flight->name = $request->name;
    
            $flight->save();
        }
    }
    

    批量更新

    App\Flight::where('active', 1)
          ->where('destination', 'San Diego')
          ->update(['delayed' => 1]);
    

    其他创建方法

    // 通过属性获取航班, 如果不存在则创建...
    $flight = App\Flight::firstOrCreate(['name' => 'Flight 10']);
    
    // 通过name获取航班,如果不存在则通过name和delayed属性创建...
    $flight = App\Flight::firstOrCreate(
        ['name' => 'Flight 10'], ['delayed' => 1]
    );
    
    // 通过属性获取航班, 如果不存在初始化一个新的实例...
    $flight = App\Flight::firstOrNew(['name' => 'Flight 10']);
    
    // 通过name获取,如果不存在则通过name和delayed属性创建新实例...
    $flight = App\Flight::firstOrNew(
        ['name' => 'Flight 10'], ['delayed' => 1]
    );
    
    // 如果有从奥克兰到圣地亚哥的航班则将价格设置为 $99
    // 如果没有匹配的模型则创建之
    $flight = App\Flight::updateOrCreate(
        ['departure' => 'Oakland', 'destination' => 'San Diego'],
        ['price' => 99]
    );
    

    删除模型(Delete)

    通过主键删除

    $flight = App\Flight::find(1);
    $flight->delete();
    
    App\Flight::destroy(1);
    App\Flight::destroy([1, 2, 3]);
    App\Flight::destroy(1, 2, 3);
    

    通过

    相关文章

      网友评论

          本文标题:Laravel的数据库操作之 Eloquent ORM

          本文链接:https://www.haomeiwen.com/subject/hushyqtx.html