Eloquent 中的get实际上是Eloquent/Builder中的get,得到的结果是个Collection对象,再调用Collection的first才得到collection中的一项,即一个Model对象。 而Query/Builder中的get得到的是个数组,实际上是直接执行了PDO的fetchAll的结果,这个结果不能再调用first,但是可以直接在Query/Builder上调用first,将得到一个stdClass对象。
protected$primaryKey='id'; 注意: Eloquent 默认主键字段是自增的整型数据, 这意味着主键将会被自动转化为int类型, 如果你想要使用非自增或非数字类型主键, 必须在对应模型中设置$incrementing属性为false, 如果主键不是整型, 还要设置$keyType属性值为string. 关闭时间戳记录 public$timestamps=false; 获取模型数...
Since each Eloquent model serves as a query builder, you may also add constraints to queries, and then use the get method to retrieve the results:$flights = App\Flight::where('active', 1) ->orderBy('name', 'desc') ->take(10) ->get();...
Eloquent ORM Eloquent 集合版本:10.x Eloquent:集合介绍所有以多个模型为查询结果的 Eloquent 方法的返回值都是 Illuminate\Database\Eloquent\Collection 类的实例, 其中包括了通过 get 方法和关联关系获取的结果。Eloquent 集合对象扩展了 Laravel 的基础集合类,因此它自然地继承了许多用于流畅地处理 Eloquent 模型...
publicfunctionscopeBugged($query) { return$query->where('bugged','>',1); } } 上面的代码会返回所有存在未修复错误的功能。 2. Eloquent 关系 Eloquent 中的关系允许您轻松地将不同的表联系起来。例如,电子商务网站上的产品可能列出了库存、价格、视图和评论。有了 Eloquent,即使记录在不同的表中,您也可以...
在Laravel中使用Eloquent获取或读取数据是相对简单的。Eloquent是Laravel提供的一种ORM(对象关系映射)工具,它允许你通过模型类与数据库交互,而不必编写复杂的SQL语句。 下面是在Laravel中使用Eloquent获取或读取数据的步骤: 定义模型:首先,你需要创建一个模型类来与数据库表对应。可以使用Artisan命令来快速生成...
我们有时候想测试一段代码生产的 SQL 语句,比如: 我们想看 App\User::all(); 产生的 SQL 语句,我们简单地使用路由闭包做个实验: Route::get('/test-sql', function() { DB::enableQueryLog(); $user = Ap...
要定义这样一个范围,只需要在对应的 Eloquent 模型方法前添加 scope 前缀。作用域总是返回一个查询构造器实例:<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class User extends Model { /** * 只查询受欢迎的用户的作用域 * * @param \Illuminate\Database\Eloquent\Builder $query *...
use Illuminate\Database\Query\Builder; Builder::macro('orderByRandom', function () { $randomFunctions = [ 'mysql' => 'RAND()', 'pgsql' => 'RANDOM()', 'sqlite' => 'RANDOM()', 'sqlsrv' => 'NEWID()', ]; $driver = $this->getConnection()->getDriverName(); return $this->...
* * @return \Illuminate\Database\Eloquent\Builder */ public function scopeActive($query) { return $query->where('active', 1); } }利用查找范围一旦定义了范围,则可以在查找模型时调用范围方法。在进行方法调用时不需要加上 scope 前缀。你甚至可以链式调用不同的范围,如:...