zoukankan      html  css  js  c++  java
  • Laravel 数据库查询(查询构造器、模型查询)

    数据库的配置在 config/database.php,如果是本地可以直接配置.env 文件:

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=laravel
    DB_USERNAME=root
    DB_PASSWORD=root

    一、DB数据查询

    数据库有一个专用类 DB,引入,可以用它来实现原生查询和构造器查询:

    use IlluminateSupportFacadesDB;
    use AppHttpModelsArticle;
    
    public function index()
    {
        //原生SQL
        $article = DB::select('select * from articles');
    
        //查询构造器
        $article = DB::table('articles')->get();
    }
    查询构造器主要通过 DB 类的各种数据库操作方法来实现
    $article = DB::table('articles')->find(1);//这个是对象,直接使用return不能输出
    //方法一
    return response()->json($article); //方法二 return [$article];
    PS:这里 DB::第一个使用静态,返回查询对象然后使用->where 等各种查询方法,这些查询方法返回的还是查询对象所以可以继续连缀操作。最后当遇到比如:get()返回结果等方法时,停止连缀。所以,返回结果必须放在最后。

    二、模型查询

    使用 Eloquent ORM 模型来操作数据库,使用命令在 Http 目录下创建模型;
    php artisan make:model Http/Models/User //默认在 app 目录


    $article = Article::all();

    上面使用模型来操作数据后,报错提示数据表是复数:articles。

    方法一:由于模型编码规范要求数据表是复数,这里的复数并不是单纯加 s;可能会加 es,可能会加 ies,也可能是 child 编程 children 之类的;

    可以使用字符串助手:Str::plural()来判断英文单词的复数情况:
    return Str::plural('bus'); //buses 
    return Str::plural('user'); //users 
    return Str::plural('child'); //children

    方法二:你可以根据规范去更改数据表名称,或者强制使用现有的数据表名:

    protected $table = 'article';

    注意:如果有前缀,可以在 database.php 修改添加:laravel_,最终变为:laravel_articles;

  • 相关阅读:
    安装oh-my-zsh失败,可按以下方式安装
    aria2 for mac
    java抛出异常后,后续代码是否可继续执行
    mac多线程下载神器
    Oracle--大数据迁移--sqlldr技术的应用
    Windows版 GCC编译器安装和使用--MinGW
    Visual Studio 2015 安装与注册
    android studio 3.6 环境搭建(安装步骤)
    IDEA--主题样式设置
    数据--innercode--的处理
  • 原文地址:https://www.cnblogs.com/bushui/p/14399217.html
Copyright © 2011-2022 走看看