IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> Laravel在IDE的使用中无法自动补全Eloquent链式查询的解决办法 -> 正文阅读

[PHP知识库]Laravel在IDE的使用中无法自动补全Eloquent链式查询的解决办法

前言:相信各位php开发大神们在编写程序时,已经用习惯了各种IDE,使用最多的也应该就是jetbrain出品的phpstorm了,之前在使用时,都非常顺畅,但是近来,笔者开始从事一项laravel项目的开发,在使用phpstorm时却遇到了一个不小的问题:IDE只能自动补全查询构建器的链式查询,也就是必须使用query()来生成查询构建器对象。在根据教程直接使用Eloquent对象时,却不能自动补全,笔者一度认为是不是框架自身出了问题,网上搜了下,才知道一个惊天大秘密。

Laravel中Facade门面的静态方法 IDE 通通无法识别,想要调用这些静态函数名称,就必须查文档,名字复杂得话,就直接查吐了,laravel设计的复杂虽然简化了开发者的工作量,但是却加重了IDE的任务。

laravel涉及IDE部分的具体问题原因,这篇文章详细的进行了总结,可以看看:点击查看,当然,您如果是用editor写代码的大神,就当我什么都没说😂

本文中的代码适用于:php7.4.*,laravel5.8,mysql5.7的开发环境。

解决办法

那么出现了这个问题,如果不解决,轻则影响开发效率,重则IDE一直报错,影响开发心情,该怎么办呢。不用担心,前人栽树,后人乘凉。

1.首先要注意一个关于composer.json中的问题,在该文件中require中的第一项就是php的版本号,这个版本号并不会实际安装php,它只是指明了当前程序运行环境中的php版本,作用就是让其他需要安装的依赖包来根据该php版本号来判断现有的php版本是否能满足其安装运行,不满足的话就会报错。请参考

2.再一个需要注意的问题:在使用composer安装依赖包时,需要注意一个点,就是一定要确定依赖包的所有依赖都是一应俱全的情况下才能正常安装。一定要在官方文档上仔细检查依赖包的依赖情况本项目是否满足。

3.最重要的一个点,如何保证开发环境和生产环境依赖包的版本完全统一,就是要把依赖包锁文件放进代码库,为什么呢,这就要弄清楚依赖包锁文件的机制原理,请查看

说了一些关于composer的使用方法,npm中的package.json也是大同小异。下面开始正式议题:

Laravel IDE Helper 是一个极其好用的代码提示及补全工具,可以给编写代码带来极大的便利。它能够为我们解决eloquent无法补全链式查询的问题,安装过程如下:

(1)安装Laravel IDE Helper

composer require barryvdh/laravel-ide-helper:2.6.0

注意:在安装时,要注意查看依赖是否有已经在项目中安装过的,如果有,则需要根据已经安装的依赖版本来确定要安装的版本号,否则就会产生冲突。

所以在安装时要注意根据已经安装过环境php版本,laravel框架版本,来选择正确的安装版本
在这里插入图片描述
其中illuminate指的就是laravel的框架版本。

(2)安装doctrine/dbal(请装上它,在为模型注释字段的时候必须用到它,不安装的话,在使用Laravel IDE Helper的过程中就会报异常)

同样的,在安装该工具时,也要仔细对比其依赖包和项目安装依赖是否有相同的,有的话就需要相应选择可安装版本

composer require doctrine/dbal: 2.12.0

(3)在 config/app.phpproviders 数组中加入

Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class

(4)如果你只在开发环境中安装 larave-ide-helper,那么可以在 app/Providers/AppServiceProvider.phpregister 方法中写入下面代码:

public function register()
{
    if ($this->app->environment() !== 'production') {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}

注意,在项目上线时候,要将项目环境改为 production.

(5)导出配置文件

php artisan vendor:publish --provider="Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider" --tag=config

(6)功能使用

全部安装完成之后,分别输入以下三条命令,开始启用该功能:

php artisan ide-helper:generate  //为Facades 生成注释
php artisan ide-helper:models  //为数据模型生成注释,ide代码提示能根据注释索引数据表的字段名称,所以数据表模型的注释要及时根据数据表进行更新

使用方法:在每次对数据库数据表进行修改之后,就需要找到被修改数据表对应的数据模型,删除其model注释,然后运行该命令,重新生成注释即可。

php artisan ide-helper:meta  //生成 PhpStorm Meta file

结语

之前在Phpstorm中使用laravel框架时,会有很多的代码不能补全等问题,现在将这个laravel IDE插件安装之后,相信能够事半功倍。之后关于这个依赖包的使用,如果笔者遇到什么问题,会随时前来更新,请继续关注。

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-01-16 12:49:24  更:2022-01-16 12:51:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 14:24:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码