当前位置:主页 > PHP开发 > PHP基础 >

Laravel框架数据库CURD操作、连贯操作总结

栏目:PHP基础 来源: 微信小程序开发网 阅读: 2018-02-28

检索表中的所有行

复制代码 代码如下:


$$users = DB::table('users')->get();
foreach ($$users as $$user)
{
var_dump($$user->name);
}

从表检索单个行

复制代码 代码如下:


$$user = DB::table('users')->where('name', 'John')->first();
var_dump($$user->name);


检索单个列的行

复制代码 代码如下:


$$name = DB::table('users')->where('name', 'John')->pluck('name');


检索一个列值列表

复制代码 代码如下:


$$roles = DB::table('roles')->lists('title');


该方法将返回一个数组标题的作用。你也可以指定一个自定义的键列返回的数组

复制代码 代码如下:


$$roles = DB::table('roles')->lists('title', 'name');


指定一个Select子句

复制代码 代码如下:


$$users = DB::table('users')->select('name', 'email')->get();
 $$users = DB::table('users')->distinct()->get();
 $$users = DB::table('users')->select('name as user_name')->get();

Select子句添加到一个现有的查询$$query = DB::table('users')->select('name');

复制代码 代码如下:


$$users = $$query->addSelect('age')->get();

where

复制代码 代码如下:


$$users = DB::table('users')->where('votes', '>', 100)->get();

OR

复制代码 代码如下:


$$users = DB::table('users')->where('votes', '>', 100)->orWhere('name', 'John')->get();

Where Between

复制代码 代码如下:


$$users = DB::table('users')->whereBetween('votes', array(1, 100))->get();

Where Not Between

复制代码 代码如下:


$$users = DB::table('users')->whereNotBetween('votes', array(1, 100))->get();

Where In With An Array

复制代码 代码如下:


$$users = DB::table('users')->whereIn('id', array(1, 2, 3))->get();
$$users = DB::table('users')->whereNotIn('id', array(1, 2, 3))->get();

Using Where Null To Find Records With Unset Values

复制代码 代码如下:


$$users = DB::table('users')->whereNull('updated_at')->get();

Order By, Group By, And Having

复制代码 代码如下:


$$users = DB::table('users')->orderBy('name', 'desc')->groupBy('count')->having('count', '>', 100)->get();

Offset & Limit

复制代码 代码如下:


$$users = DB::table('users')->skip(10)->take(5)->get();

二、连接

Joins

查询构建器也可以用来编写连接语句。看看下面的例子:

Basic Join Statement

复制代码 代码如下:


DB::table('users')
  ->join('contacts', 'users.id', '=', 'contacts.user_id')
  ->join('orders', 'users.id', '=', 'orders.user_id')
  ->select('users.id', 'contacts.phone', 'orders.price')
  ->get();

左连接语句

复制代码 代码如下:


DB::table('users')
  ->leftJoin('posts', 'users.id', '=', 'posts.user_id')
  ->get();
  DB::table('users')
  ->join('contacts', function($$join)
  {
  $$join->on('users.id', '=', 'contacts.user_id')->orOn(...);
  })
  ->get();
  DB::table('users')
  ->join('contacts', function($$join)
  {
  $$join->on('users.id', '=', 'contacts.user_id')
  ->where('contacts.user_id', '>', 5);
  })
  ->get();

三、分组

  有时候,您可能需要创建更高级的where子句,如“存在”或嵌套参数分组。Laravel query builder可以处理这些:

复制代码 代码如下:


DB::table('users')
->where('name', '=', 'John')
->orWhere(function($$query)
{
$$query->where('votes', '>', 100)
->where('title', '<>', 'Admin');
})
->get();


  上面的查询将产生以下SQL:

复制代码 代码如下: