laravel auth(api)-attempt 返回false_3分钟短文:Laravel命令行参数和可选项分不清?怎么可能...
引言
上一期我们介绍了laravel命令行的创建,以及使用方法。使用了一个没有数据输入和输出的测试用例。 本期我们来介绍带有命令行参数输入,和命令行输出信息的代码用法。
代码时间
声明命令行位置参数,在类文件内$signature变量内书写:
protected $signature = 'password:reset {userId} {--sendEmail}';
其中 userId 是必填参数,需要填入一个数据;而 sendEmail 则是一个开关, 如果在命令行中带有 --sendEmail 则返回true,否则返回默认值。
对于常用的位置参数,如果想要对 userId 设置为可选,这样写:
password:reset {userId?}
如果要给其设置一个默认值,这样来写:
password:reset {userId=1}
对于可选项(比如 --password) 需要用户手动输入一个值,这样写:
password:reset {userId} {--password=}
加一个等号即可。如果可选项有默认值,等号传递上即可:
password:reset {userId} {--queue=default}
如果要使用一个命令行参数,接收一系列值,也就是一个数组,这样来声明:
password:reset {userIds*}
用的使用需要使用空格将各个参数排开:
php artisan password:reset 1 2 3
如果是可选项参数,则声明如下:
password:reset {--ids=*}
使用起来的时候,比较人性化,我们推荐这种用法,也是linux操作系统下的惯例:
php artisan password:reset --ids=1 --ids=2 --ids=3
这样要直观的多。
演示示例
假设命令行文件内声明的参数类型如下:
password:reset {userId}
那么在程序内要获取命令行的该参数,需要$this->argument()方法,返回的是一个数组:
[ "command": "password:reset", "userId': "5",]
获取单个参数的值:
$userId = $this->argument('userId');
对于可选项的值,文件内声明如下:
password:reset {--userId=}
首先我们打印多有的可选项$this->option()数据:
[ "userId" => "5" "help" => false "quiet" => false "verbose" => false "version" => false "ansi" => false "no-ansi" => false "no-interaction" => false "env" => null]
如果是获取单个可选项参数,在方法内指定即可:
$userId = $this->option('userId');
写在最后
本文使用对比的方式,为大家演示了命令行的argument和option的区别, 在用法上我们更推荐使用 option 获取用户输入,这样更符合linux的设计哲学和惯例。
Happy coding :-)
我是@程序员小助手,持续分享编程知识,欢迎关注。
laravel auth(api)-attempt 返回false_3分钟短文:Laravel命令行参数和可选项分不清?怎么可能...相关推荐
- Windows API一日一练(一)第一个应用程序 使用应用程序句柄 使用命令行参数 MessageBox函数 RegisterClass和RegisterClassEx函数
要跟计算机进行交互,就需要计算机显示信息给人看到,或者发出声音给人听到,然后人看到或听到相应的信息后,再输入其它信息给计算机,这样就可以让计算机进行数据处理,把结果显示给我们.现在就来编写一个最简单的 ...
- java cmd 返回结果_Java调用cmd命令行并返回执行结果
命令提示符是在操作系统中,提示进行命令输入的一种工作提示符.在windows环境下,命令行程序为cmd.exe,是一个32位的命令行程序,微软Windows系统基于Windows上的命令解释程序,类似 ...
- sql查询无结果返回空_3分钟短文 | Laravel 查询结果检查是不是空,5个方法你别用错...
引言 Laravel 提供了 Eloquent ORM 对象用于操作数据库,将其进行抽象方便操作. 因为设计的灵活度,大家在使用Model查询数据集的时候,会面临结果为空,记录不存在的问题, 那么如何 ...
- laravel blade include使用变量_3分钟短文:可能是Laravel模板最直白的用法了,没有之一...
引言 上一期我们通过分配路由地址,在url中接收位置参数并传递给控制器方法, 并且在控制器内简单地打印输出接收的参数. 本期我们尝试着使用laravel的模板功能,把控制器内组装好的数据渲染到视图模板 ...
- laravel $request 多维数组取值_3分钟短文 | Laravel 内3种数据校验的写法,你喜欢哪一个?...
引言 web应用程序公开访问几乎没有不带用户交互的,难免要接收用户输入的奇奇怪怪的东西.对于后端程序,必须对输入的内容进行有效性过滤. 这就是本文的重点,说一说laravel中输入请求的校验. 学习时 ...
- 拼装sql_3分钟短文 | Laravel复杂SQL超多WHERE子句,本地作用域你没用过
引言 使用框架就是为了方便把注意力集中在逻辑上,而不用关心与数据库操作的方方面面.Laravel提供的 eloquent orm 使用面向对象的方式封装了PDO数据库操作,使用起来非常方便,对于复杂的 ...
- mvc 前段定义变量_3分钟短文 | Laravel blade模板里优雅地定义PHP变量
引言 Laravel秉持MVC的设计理念,在V = view 中放置视图相关的内容.特别是 blade 模板引擎带来了很强大的解析方式. 与传统的PHP与HTML写作一团方式不容,Blade 使用特定 ...
- laravel框架api接口返回Validate Request 一直重定向问题
Validate Request 一直重定向问题 | Laravel China 社区
- php定义一个学生类_3分钟短文 | PHP获取函数参数名,和类定义的常量,都要反射...
引言 本文我们分享两个知识点,算是PHP编程中的稍微高阶一点的用法,一般不会用到.可是有了这个思路之后,你对于自己的冗余代码,应该会有想法了. 获取函数形参列表 我们在写程序的时候,不可能所有功能逻辑 ...
最新文章
- 【高并发】面试官问我:为啥局部变量是线程安全的?
- Mac OS X下Maven的安装与配置
- 一个星期+4轮面试终拿下offer,进阶学习
- new chosen courses at ifm
- java 数组中某个数出现的概率_剑指Offer解题报告(Java版)——排序数组中某个数的个数 38...
- idea,eclipse创建多模块项目
- python docx库安装_详解python中docx库的安装过程
- oracle如何获取自增id,oracle实现自增id
- 使用了未初始化的局部变量_Java 成员变量和局部变量
- 如何制作多合一Windows镜像
- arduino 读取模拟电压_【Arduino官方教程】基础示例(六):读取模拟电压
- 本科英语计算机,计算机本科生英语简历范文
- [UOJ#405/LOJ#2863][IOI2018]组合动作(交互)
- 用友t3服务器系统管理软件,T3用友通系统管理常见问题及解决方案
- mysqldump 备份报 Warning: A partial dump from a server that has GTIDs will by default include the..
- 算法---兔子生小兔子
- vue echarts柱状图 隐藏坐标轴刻度线等 横向显示百分比
- linux+rel+安装教程,pika安装教程
- 适合Java零基础小白学习的Java零基础教程
- HelloWord回顾
热门文章
- \V110\Microsoft.CppCommon.targets(347,5): error MSB6006: “CL.exe”已退出,代码为 -1073741515。的解决方法
- 在Linux部署Nodejs项目,一旦断掉XShell就会导致服务被停掉,真的很郁闷~怎么办?果断用forever
- Class101–如何高效地构建强大的数字绘画
- windows 系统无法启动windows event log 服务
- 九章算法班L8 Array Number
- 中国现代化进程专题讲座——有感
- 使用appium做自动化测试时,send_keyss只能输入字母数字,无法输入中文
- SQL Server 与 ORACLE 的区别
- 剑指offer 重建二叉树 python
- Vue源码终笔-VNode更新与diff算法初探