首页 > 代码库 > laravel CURD

laravel CURD

检索一个列值列表
DB::table("tablename")->lists(‘mobile‘); 返回 [ "13455556666", "13455556667", "13455556668", "13455556669", ]
指定一个自定义的键列返回的数组
\DB::table(‘tablename‘)->lists(‘mobile‘,‘email‘);
返回
[
"aa@sina.com"=>"13022223335",
"bb@sina.com"=>"13022223336",
"cc@sina.com"=>"13022223337",
]
检索表中的所有行

$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);
检索单行单列--返回指定字段
DB::table(‘users‘)->where(‘name‘, ‘John‘)->pluck(‘name‘);
返回数组 非字符串
["Jone"] 并不是返回 "Jone"
指定一个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();
where

$users = DB::table(‘users‘)->where(‘votes‘, ‘>‘, 100)->get();
$users = DB::table(‘users‘)->where([‘votes‘=>100,‘name‘=>‘zhangsan‘])->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
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();
聚合
$users = DB::table(‘users‘)->count();
$price = DB::table(‘orders‘)->max(‘price‘);
$price = DB::table(‘orders‘)->min(‘price‘);
$price = DB::table(‘orders‘)->avg(‘price‘);
$total = DB::table(‘users‘)->sum(‘votes‘);
递增或递减一个列的值
DB::table(‘users‘)->increment(‘votes‘);
DB::table(‘users‘)->increment(‘votes‘, 5);
DB::table(‘users‘)->decrement(‘votes‘);
DB::table(‘users‘)->decrement(‘votes‘, 5);
指定额外的列更新
DB::table(‘users‘)->increment(‘votes‘, 1, array(‘name‘ => ‘John‘));
Inserts

DB::table(‘users‘)->insert(
array(‘email‘ => ‘john@example.com‘, ‘votes‘ => 0)
);

$id = DB::table(‘users‘)->insertGetId(
array(‘email‘ => ‘john@example.com‘, ‘votes‘ => 0)
);

多个记录插入到表中

DB::table(‘users‘)->insert(array(
array(‘email‘ => ‘taylor@example.com‘, ‘votes‘ => 0),
array(‘email‘ => ‘dayle@example.com‘, ‘votes‘ => 0),
));
Updates
DB::table(‘users‘)
->where(‘id‘, 1)
->update(array(‘votes‘ => 1));
Deletes
删除表中的记录

DB::table(‘users‘)->where(‘votes‘, ‘<‘, 100)->delete();
 
删除表中的所有记录

DB::table(‘users‘)->delete();

清空一个表

DB::table(‘users‘)->truncate();
共享锁
DB::table(‘users‘)->where(‘votes‘, ‘>‘,
100)->sharedLock()->get();

更新“锁”
DB::table(‘users‘)->where(‘votes‘, ‘>‘, 100)->lockForUpdate()->get();

 

事务 使用匿名函数 任何一个异常都会触发回滚

        return \DB::transaction(function() use($user_params, $staff_params) {
            //写管理员进入user表
            $user_id = DB::table(User::TABLE_NAME)
                ->insertGetId($user_params);
            if(!$user_id) throw new Exception("写入user表失败");

            $staff_params[Staff::DB_FIELD_USER_ID] = $user_id;
            $staff_id=DB::table(Staff::TABLE_NAME)
                ->insertGetId($staff_params);
            if(!$staff_id) throw new Exception("写入staff表失败");

            return $staff_id;
        });

 

laravel CURD