laravel的使用-模型和数据库基本操作

5 篇文章 0 订阅

一 数据库相关配置(项目根目录的.env文件)

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=tpstudy
DB_USERNAME=root
DB_PASSWORD=123456

二  原生sql语句实现增删改查

php的常用框架大多都提供了至少2种的数据库操作方式,分别是模型、原生sql,模型的方式适用简单的数据库操作,对于非常复杂的sql操作模型就毫无用武之地了。我们可以使用DB类操作数据库实现增删改查,直接上代码

   /**
     * 不带条件查询
     */
    public function query(){
        $sql="select * from tp_user";
        $res=DB::select($sql);
        dd($res);
        
        //$res=DB::table("tp_user")->where("id","<",17)->get();
        //dd($res);
    }
    /**
     * 带条件查询
     */
    public function condQuery(){
        $sql="select * from tp_user where id=:id";
        $res=DB::select($sql,["id"=>17]);
        dd($res);
    }
    
    /**
     * 更新操作
     */
    public function update(){
        $sql="update tp_user set nickName=:nickName where id=:id";
        $res=DB::update($sql,["id"=>17,"nickName"=>"小周"]);
        dd($res);
        //$res=DB::table("tp_user")->where("id",17)->update(["nickName"=>"大周杰伦"]);
        //dd($res);
    }
    /**
     * 删除操作
     */
    public function remove(){
        $sql="delete from tp_user where id=:id";
        $res=DB::delete($sql,["id"=>12]);
        dd($res);
    }
    
    /**
     * 新增操作
     */
    public function save(){
        $sql="insert into tp_user(userName,password,nickName,birthday,age,address,phone,email) values(:userName,:password,:nickName,:birthday,:age,:address,:phone,:email)";
        $data=[
            "userName"=>"boren",
            "password"=>"123456",
            "nickName"=>"漩涡博人",
            "birthday"=>date('Y-m-d H:i:s',time()),
            "age"=>15,
            "address"=>"火之国木叶",
            "phone"=>"13333333333",
            "email"=>"boren@163.com"
        ];
        $res=DB::insert($sql,$data);
        dd($res);
    }
    

原生sql操作数据库可以使用命名参数,参数值以关联数组的方式传入,这样就不用关心参数顺序问题了

二 使用模型操作数据库

1 模型类的创建,原则上只要继承Model即可,可以手动创建也可以使用artisan命令创建

 

<?php
namespace App\Admin;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    /**
     *表名称
     */
    protected  $table='tp_user';
    /**
     *主键字段名
     */
    protected  $primaryKey='id';
    /**
     * 时间戳 -created_at,updated_at 这2个字段不需要
     */
    public  $timestamps=false;
    /**
     *需要填充的字段
     */
    protected  $fillable=['userName','password','nickName','birthday','age','address','phone','email'];
}
?>

模型的名称也可以写的更规范些,例如UserModel,RoleModel等,以上代码只是模型类的几个配置,其他的参照开发文档

 

2 使用模型实现数据库的增删改查

/**
     * 使用模型的查询,其他的操作如排序等可参照开发文档
     */
    public function modelQuery(){
        $model=new UserModel();
        $data=$model::where('id','>','5')->select(['userName','nickName'])->get()->toArray();
        dd($data);
    }
    
    /**
     * 新增-使用模型
     */
    public function modelAdd(){
        $model=new UserModel();
        $data=[
            'userName'=>'zhiling',
            'password'=>'654321',
            'nickName'=>'志玲',
            'birthday'=>date('Y-m-d H:i:s',time()),
            'age'=>40,
            'address'=>'北京市西城区',
            'phone'=>'19999999999',
            'email'=>'19@qq.com'
        ];
        $model->create($data);
        echo "新增成功";
    }
    
    /**
     * 修改-使用模型
     */
    public function modelMerge(){
        $model=new UserModel();
        $model->where('id',20)->update(['nickName'=>'志玲姐姐']);
        echo "修改成功";
    }
    
    
    /**
     * 删除-使用模型
     */
    public function modelDelete(){
        $model=new UserModel();
        $model->where('id',20)->delete();
        echo "删除成功";
    }

模型的使用也和其他框架大同小异,也是使用use把模型引入,调用相关方法即可 。

 

三 补充知识(获取请求参数)-方便后续的开发


Input::all();
Input::get('name');
Input::only(['id','name']);
Input::except(['id','name']);
Input::has('sex');

all  获取所有请求参数

get 可获取某个指定名称的参数

only 和get类似但可以指定要获取的多个参数的名称

except 和only相反,用来获取除指定名称之外的参数

has  判断参数名称是否存在 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值