在app/Providers/RouteServiceProvider.php 的 map 方法中可以如下定义: publicfunctionmap(Router$router){$this->mapApiRoutes();$this->mapWebRoutes();$this->mapAdminRoutes();}protectedfunctionmapAdminRoutes(){Route::group(['prefix'=>'/admin','middleware'=>'admin','namespace'=>'App\Http\Control...
* @param array $columns * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection|static[]|static|null */ public function find($id, $columns = ['*']) { if (is_array($id) || $id instanceof Arrayable) { return $this->findMany($id, $columns); } return ...
不过这里需要注意的是,模型默认生成的 QueryBuilder 是 llaravel/framework/src/Illuminate/Database/Eloquent/Builder.php 对象,而不是我们之前 查询构造器 中的 laravel/framework/src/Illuminate/Database/Query/Builder.php 对象。但 Eloquent\Builder 的内部持有的一个$query 属性依然是 Query\Builder 对象,也就是说...
比如,让我们删除所有未激活的用户,并且收集所有保留用户的首个名字: $users=App\User::where('active',1)->get();$names=$users->regect(function($user){return$user->active===false;})->map(function($user){return$user->name;}); 注意:大多数的 Eloquent 集合方法都会返回一个 Eloquent 集合的实例,...
在迭代 eloquent 集合时,您可以将所有列值作为项属性进行访问。 以下是我们如何迭代所有帖子。 $posts=App\Post::all();$posts->each(function($item,$key){// Do something}); 如果回调中返回 false,它将停止迭代项目。 $collection->each(function($item,$key){// Tasksif($key==1){returnfalse;}})...
Eloquent ORM 的调用会以集合的形式返回数据 为了演示这个效果,我将初始化一个 Sqlite 数据库。 我们将用 Laravel 框架预置的迁移文件来创建一个用户表,然后填充 10 条数据到用户表中。 /** * 从用户表获取用户列表 */publicfunctiongetUsers(){$users=User::all();dd($users); ...
}publicfunctioncolumnize(array$columns) {returnimplode(', ',array_map([$this, 'wrap'],$columns)); } 先来看compileColumns,这个方法看上去很简单,判断aggregate不为空后,根据distinct 属性来得出sql语句头,然后将这个字符串与$this->columnize()方法的返回值进行拼接。就得出了上面'select *'这句字符串。
在所有模型都要继承的 laravel/framework/src/Illuminate/Database/Eloquent/Model.php 类中,我们很快就能发现一个 query() 静态方法。一路向下追踪,你马上就会发现它最后会调用到一个 newBaseQueryBuilder() 方法。 protectedfunctionnewBaseQueryBuilder()
public function vips() { return Contact::where('vip', true)->get()->map(function ($contact) { $contact->formalName = "The exalted {$contact->first_name} of the {$contact->last_name}s"; return $contact; }); } 大家注意,get方法返回的是一个 Eloquent Collection,包含了Model模型的集合...
*/ public function user() { return $this->belongsTo('App\User', 'foreign_key', 'other_key'); }一对多#一个「一对多」关联用于定义单个模型拥有任意数量的其它关联模型。例如,一篇博客文章可能会有无限多个评论。就像其它的 Eloquent 关联一样,可以通过在 Eloquent 模型中写一个函数来定义一对多关联:...