对Laravel5中ORM模型的返回值之总结
2022-05-31MYSQL
在使用Laravel框架中使用 ORM 返回的数据类型很容易对其产生混淆,有时会返回集合,有时为布尔值类型或者为整数类型,为了方便理解,故对增删改查操作进行一个小结
在使用Laravel框架中使用 ORM 返回的数据类型很容易对其产生混淆,有时会返回集合,有时为布尔值类型或者为整数类型,为了方便理解,故对增删改查操作进行一个小结
一、简介
Laravel 内置的 Eloquent ORM 提供了一个美观、简单的与数据库打交道的 ActiveRecord 实现,每张数据表都对应一个与该表进行交互的模型(Model),通过模型类,你可以对数据表进行查询、插入、更新、删除等操作。
在开始之前,确保在 config/database.php 文件中配置好了数据库连接
二、增
添加数据的 create、insert 方法与查询中的 first 方法,成功返回的是模。 创建、插入成功返回的是创建插入的那条数据的模型。 first如果查不到数据,返回的是null,可用empty判断。 创建和插入,如果失败,会报错(当传入的字段与数据库对不上时)。 如果传入的字段与数据库字段一致,插入或创建失败会返回false 判断是否插入成功,用(! $result)判断,(感叹号和$result)间保留一个空格。判断完成后才可调用toArray。
三、删和改
1. update和delete,destroy方法,返回的是影响行数。 在 laravel 中,update 方法永远返回大于1的行数,因为 updated_at 字段总是会被更新。 如果要避免这种情况,请在模型中关闭 laravel 的自动维护字段的属性。 2. destory和delete返回的是影响行数,即失败为0,成功为删除行数。
四、查
1、从数据表中获取所有的数据列
1. 查询中的 get 与 all 方法返回的是集合。 示例# 你可以使用 DB facade 的 table 方法开始查询。这个 table 方法针对查询表返回一个查询构造器实例,允许你在查询时链式调用更多约束,并使用 get方法获取最终结果: public function index() { $users = DB::table('users')->get(); return view('user.index', ['users' => $users]); } get 方法会返回一个 Illuminate\Support\Collection 结果集,其中每个结果都是一个 PHP StdClass 对象的实例。您可以通过访问列中对象的属性访问每个列的值: foreach ($users as $user) { echo $user->name; } 2.当没有数据时,返回的是空集合。 集合可以在任何时候调用 toArray 方法,如果查询到的结果为空,得到的是[],可以用 empty() 方法判断是否有数据。
2、从数据表中获取单个列或行
如果你只需要从数据表中获取一行数据,则可以使用 first 方法。这个方法将返回单个 StdClass 对象: $user = DB::table('users')->where('name', 'whmblog')->first(); echo $user->name; 如果你不需要一整行数据,则可以使用 value 方法来从单条记录中取出单个值。此方法将直接返回字段的值: $email = DB::table('users')->where('name', 'whmblog')->value('email'); first 如果查不到数据,返回的是 null,可用 empty 判断。
很赞哦! ()