laravel DB门面,orm基础及blade

DB门面

laravel改变搜索的对象变数组

路径:App/http/config/database.php

将'fetch'=>PDO::FETCH_CLASS,改成'fetch' => PDO::FETCH_ASSOC,

原生
    // 增加
    DB::insert('insert into user (id,name,email) value (?,?,?)',[1,'laravel','[email protected]']);

    // 查询
    DB::select('select * from user where id=?',[1]);
    // 更新  该方法返回受影响的行数
    DB::update('update user set name="hjy" where id=?',[2]);
    //删除   该方法返回被删除的行数 表被删除
    DB::delete('delete from user');
    // 通用语句
    DB::statement('drop table user');
构建器
    //返回行
        // 增加一行
        DB::table('user')->insert( ['id'=1,'name'='yunchaung']);

        //如果表中有一个自动递增的 ID 字段,使用 insertGetId 插入一条记录并获取 ID:
        向带有自动递增的 ID 字段的表中插入一条记录

        $id = DB::table('users')->insertGetId(
        array('email' => '[email protected]', 'votes' => 0)
        );

        一次性增加多条数据
        DB::table('users')->insert(array(
            array('email' => '[email protected]', 'votes' => 0),
            array('email' => '[email protected]', 'votes' => 0),
        ));
        
        //更新
        DB::table('users')->where('name','Laravel-Academy')->update(['password'=>'123']);
        //删除
        DB::table('user')->where('id','>',3)->delete();

        
        //事务
        DB::transaction(function(){
                DB::table('user')->update(['id=>1']);
                DB::table('post')->delete();

        });
        DB::beginTransaction();
        DB::rollBack();
        DB::commit();
查询一个表中的所有行
    $user=DB::table('user')->get();

    foreach ($users as $user)
    {
        var_dump($user->name);
    }
查询一个表中的一行
    DB::table('user')->where('id',3)->first();
    var_dump($user->name);
查询某一行的某一列
    $name = DB::table('users')->where('name', 'John')->pluck('name');
取出某一列(多行)
    $roles = DB::table('roles')->lists('title');
    //返回所有 title 的列表。您也可以对返回的数组指定一个指定的键:
    $roles = DB::table('roles')->lists('title', 'name');
指定一个选择子句
    $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,or,whereBetween,Where In,whereNotIn,where Null
    $users = DB::table('users')->where('votes', '>', 100)->get();

    动态where字句
    $john = DB::table('users')
    ->whereIdAndEmail(2, '[email protected]')
    ->first();
    $Jane = DB::table('users')
    ->whereNameOrAge('Jane', 22)
    ->first();

    //or
    $users = DB::table('users')
                ->where('votes', '>', 100)
                ->orWhere('name', 'John')
                ->get();
    //whereBetween
    $users = DB::table('users')
                ->whereBetween('votes', array(1, 100))->get();
    //whereIn
    $users = DB::table('users')
                ->whereIn('id', array(1, 2, 3))->get();
    //whereNull
    $users = DB::table('users')
                ->whereNull('updated_at')->get();
Order By, Group By 和 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();
高级Wheres
创建高级的 where 子句,比如 "where exists" 或 嵌套参数组合。
    DB::table('users')->where('name', '=', 'John')
    ->orWhere(function($query)
     {
            $query->where('votes', '>', 100)
                  ->where('title', '<>', 'Admin');
      })
      ->get();

    // select * from users where name = 'John' or (votes > 100 and title <> 'Admin')
存在表达式
    DB::table('users')
        ->whereExists(function($query)
        {
            $query->select(DB::raw(1))
                  ->from('orders')
                  ->whereRaw('orders.user_id = users.id');
        })
        ->get();

    //select * from users
    where exists (
    select 1 from orders where orders.user_id = users.id
    )   
取出部分数据
    DB::table('users')->chunk(100,function($users){
            foreach($users as $user){
                if($user->name=='yunchuang')
                  return false;
                echo $user->name.'
'; } });
Join
//内连接
$users=DB::table('users')->join('posts','users.id','=','posts.user_id')->get();


$users = DB::table('users')->leftJoin('posts','users.id','=','posts.user_id')->get();


$users = DB::table('users')->join('posts',function($join){
$join->on('users.id','=','posts.user_id')
     ->where('posts.id','>',1);
})->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');
原始表达式
$users = DB::table('users')
                 ->select(DB::raw('count(*) as user_count, status'))
                 ->where('status', '<>', 1)
                 ->groupBy('status')
                 ->get();
递增或递减一个字段的值
DB::table('users')->increment('votes');

DB::table('users')->increment('votes', 5);

DB::table('users')->decrement('votes');

DB::table('users')->decrement('votes', 5);
联合
    查询生成器也提供了一种快速的方法联合两个查询:

    执行一个查询联合

    $first = DB::table('users')->whereNull('first_name');
    
    $users = DB::table('users')->whereNull('last_name')->union($first)->get();
    也可以使用 unionAll,与 union 有同样的签名。
缓存查询

$users = DB::table('users')->remember(10)->get();

Model的基础

    // 指定一个自定义的数据表名称
    class User extends Model {
      protected $table = 'users';
    }
    新增或更改
    Student::create(array('key' => 'value'));
    // 通过属性找到第一条相匹配的数据或创造一条新数据
    Student::firstOrCreate(array('key' => 'value'));
    // 通过属性找到第一条相匹配的数据或实例化一条新数据
    Student::firstOrNew(array('key' => 'value'));
    // 通过属性找到相匹配的数据并更新,如果不存在即创建
     Model::updateOrCreate(array('search_key' => 'search_value'), array('key' => 'value'));

    //填充
    Student::fill($attributes);
    Student::all();
    Student::find(1);
    Student::destroy(1);

    Student::where('foo', '=', 'bar')->count();

    // 输出原始的查询语句
     Student::where('foo', '=', 'bar')->toSql();

Blade

    // 区块占位
    @yield('name')


    // 可继承内容区块
    @section('sidebar')
    @show

    // 实现命名为 name 的区块(yield 占位的地方)
    @section('name')
    @stop

    // 扩展布局模板
    @extends('layout.name')



    // 继承父模板内容(@show 的区块内容)
     @parent

    // 包含子视图
    @include('view.name')
    // 包含子视图,并传参
    @include('view.name', array('key' => 'value'));


    @forelse($students as $student)
        {{$stunden->name}}
    @empty
        null
    @endforelse


    // 三元表达式的简写,以下相当于「$name ? $name : 'Default'」
    {{{ $name or 'Default' }}}

你可能感兴趣的:(laravel DB门面,orm基础及blade)