我们完全可以将命令行看作与 Web 应用同等的控制台应用(实际上,Laravel 底层也是这么做的),它具备自己的路由、Kernel、输入、控制器(命令类)、输出。...输入描述 还记得我们上一篇教程提到的 artisan help 命令吧,我们使用该命令时会提示我们指定命令所有参数和选项的描述信息: 这是怎么做到的呢?...这在我们的命令行应用最终是交付给客户使用的情况下非常方便,因为不同客户的输入信息是不一样的,我们不能写死,如果让客户自己输入又长又多的参数和选项又很不友好。...在应用代码中调用 Artisan 命令 除了在命令行运行 Artisan 命令之外,还可以在应用代码中通过 Artisan 门面调用它。...你还可以在一个 Artisan 命令类中调用另一个 Artisan 命令,在命令类中调用 Artisan 命令,可以通过 Artisan:call(),也可以直接通过 this->call() 方法,还可以通过
delete()方法是实例方法,需要查询到相应的数据并通过模型实例调用。 destroy()方法可以直接调用,通过索引删除记录。...举个例子: /*delete()方法删除*/ //先查找记录 $blog = Blog::find(1); if($blog){ //再删除记录 if($blog->delete()...; } }else{ echo "文章不存在"; } /*destroy()方法删除*/ //直接通过索引删除 Blog::destroy(1); 还有一个区别是两者的返回值不一样...,delete方法返回的是boolean值,true或false,destroy方法返回的是被删除的记录数。
不知大家是否有过类似的经历,比如说for循环渲染数组或者对象中的数据,渲染完成后,给数组或者对象添加、修改、删除数据后却没有在页面中渲染出来。...本篇就是来解释说明修改数组和对象数据视图立马更新的问题,要掌握各种情况和set、delete方法的使用 数组中数据渲染后的修改、新增、删除问题 delete方法不仅仅是Vue中的全局方法,也是实例方法,这个我们放在第二个例子讲解。...综上所述,数组要能直接触发视图更新在页面上渲染出来的方法 1.利用数组的api方法 2.改变数组指向的内存地址(改引用) 3.利用Vue的set、delete方法操作数组(推荐) 对象中数据渲染后的修改...$delete(vm.userInfo, "age") 经过我的测试这都是可以的,根据需要使用 综上所述 虽然修改数组、对象中的数据都可以直接改变引用地址实现,但是不推荐。
添加http.js文件 在src目录下新增一个目录utils,并新增一个js文件http.js,用以实现axios的封装 编辑http.js,首先导入axios import axios...from 'axios' 定义Http Request公共信息,用以添加授权等 axios.interceptors.request.use( config => { let...() { document.body.removeChild(iframe) } document.body.appendChild(iframe) } Main.js中引用...import axios from 'axios' import {get,post} from '@/utils/http.js' Vue.prototype....$get = get 使用http.js {{Lan}} import
,在 Laravel 中,我们可以通过三种工具实现命令行交互: Artisan:Laravel 内置的命令行操作工具集,支持自定义命令; Tinker:一个由 PsySH 扩展包驱动的 REPL,允许你通过命令行与整个...Laravel 应用进行交互; Laravel 安装器,这个我们在框架安装部分已经提到过,比较简单,不再单独介绍。...在 artisan 文件中,处理流程会像 Web 请求一样,注册类的自动加载器,初始化容器和异常处理器,获取用户输入,执行处理逻辑,最后发送响应,只不过这一切都是在控制台中完成。...Artisan 命令,这种需求在实际项目开发中还是常有的,比如数据迁移、数据修复、定时任务等。...中基于闭包实现简单业务逻辑一样,对于这么简单的命令,我们也可以在 routes/console.php 中基于闭包实现: Artisan::command('welcome:message_simple
对于对象 Vue无法检测property的添加或移除,由于Vue会在初始化实例时对property执行getter/setter转换,所以propterty必须在data对象上存在才能让Vue将它转换为响应式的...例如 var vm = new Vue({ data:{ a:1 } }) // `vm.a` 是响应式的 vm.b = 2 // `vm.b` 是非响应式的 对于已经创建的实例,Vue...不允许添加根级别的响应式属性,但是可以使用 Vue.set(vm.someObject, "b" ,2) 也可以使用vm....$set实例方法,这也是全局Vue.set方法的别名 this....$delete(this.AddEditeDialog.netTypeParam, name); }, 对于数组 Vue不能检测以下数组的变动 vm.items[indexOfItem] = newValue
当使用laravel的日志类记录信息的时候 Log::info("xxxx") 发现Log类里并没有定义info 静态方法,但是仍然可以调通 原因就是__callStatic魔术方法,当静态方法不存在的时候...简单的测试用例 <?
任何一位 Laravel 的开发者都肯定对于 migrate:refresh 这个命令很熟悉了,特别是首次发布上线前,随着开发进行,对 migration 文件不断做修改,就会一次又一次地运行这个命令来重建数据库...而在 Laravel 5.5 版本中,对这个命令又进行了一次增强。...或者说增加了一个相似但又有所区别的命令:migrate:fresh. refresh 和 fresh 命令的区别在于:fresh 命令不按照 migrations 表里的记录逐步回滚,而是通过删除数据库里所有表来跳过还原和回滚的步骤...,然后在空数据库上执行每个 migration 文件里的 up 方法。...关于这个命令的更多信息,你也可以查看 Taylor 写的这篇文章
迷茫,除了迷茫还是在迷茫!最近,公司接了一个laravel的项目,可惜没有phper,于是开始学习laravel,现在的情况就是还没学会走路就要开始跑了,所以遇到坑会摔得很痛!...C:/php/ext/下去找openssl.dll文件 解决: 他开的是虚拟机,修改extension_dir = "./" 路径为绝对路径 报错: 原因:laravel为了防止跨站脚本攻击(CSRF)...该令牌用于验证经过身份验证的用户是否是向应用程序发出请求的用户。 解决:在app/Http/Middleware/VerifyCsrfToken中放行需要访问的地址。...如 ⑤遇到跨域问题(laravel跨域)) 运行命令 php artisan make:middleware EnableCrossRequestMiddleware 自动在app/Http/Middleware...\App\Http\Middleware\EnableCrossRequestMiddleware::class, ]; ⑥composer安装报错 报错:win7下使用命令行安装的
Laravel 中默认使用的时间处理类就是 Carbon。...1 安装 通过 Composer 来安装 Carbon: composer require nesbot/carbon PS:由于 Laravel 项目已默认安装了此包,所以不需要再次执行上面的命令。...如果你不指定参数,它会使用 PHP 配置中的时区: <?php echo Carbon::now(); //2016-10-14 20:21:20 ?...Carbon中你可以使用下面的方法来比较日期: min –返回最小日期。...1小时距现在 5月距现在 当比较的值超过另一个值 1小时前 5月前 当比较的值在另一个值之后 1小时后 5月后 你可以把第二个参数设置为 true 来删除“前”、“距现在”等修饰语:
MongoDB实用场景 产品用户访问日志,点击埋点统计信息 业务系统环境参数配置信息 业务系统运行时日志,如laravel.log,nginx.log 使用Homebrew在macoOS安装MongoDB...PHP Drive 在macOS中,MongoDB 扩展已经从Homebrew仓库中移除,需要通过pecl安装此扩展。...brew service restart --all 查看是否安装成功 php -m|grep mongodb 在Laravel中使用MongoDB 使用Composer创建一个Laravel项目 composer...命令行创建MongoDB数据库 macOS中,在命令行执行mongo开启MongoDB Shell ....DB中查询MongoDB 使用了Laravel-MongoDB扩展,可以基于Eloquent与Query Builder操作MySQL一样的数据php artisan thinker/ / 查询ad_clicks
解决办法:在axios的第三个参数config中,设置请求头信息'Content-Type': 'application/json;charset=UTF-8' this.
https://blog.csdn.net/u011415782/article/details/78928912 ♩ 背景 其实很久前就接触到了 Layer 的使用,当时只是一位讲师的推荐,并且只应用了简单的弹出框模块功能...近期发现开源作者一直在进行维护,并且注意到了拥有让人喜欢的LayUI设计风格,感觉之前真的是有点浪费了 不管他人如何评价、质疑,自己作为后端开发人员更是layer的忠实拥护者,推荐学习一下 官网:...♫ 使用步骤 ①. 下载框架源码 个人下载的是 layui.2.2.45 版本,解压后放置于自己的项目 Public 目录下. ? ②. 引入 js , css 文件 ?...依个人习惯,我新建了 layui.blade.php 文件来存放相关的配置数据,如此一来,哪个页面需要,直接使用 @include()命令引入此文件即可 源代码参考如下: 在团队合作以及他人代码维护上可能会有很大的阻碍 但是,在自己看来,极为欣赏这一框架的方便和优雅性,在此,为作者“闲心”点赞.
Laravel 中的 Artisan 命令行是这样 // 创建命令 php artisan make:command SendEmails // 运行命令 php artisan mail:send /.../ 使用参数 php artisan mail:send hello // 使用选项 php artisan mail:send --mail=abc@qq.com Goravel 中的 Artisan...命令行也一样 // 创建命令 go run . artisan make:command SendEmails // 运行命令 go run . artisan mail:send // 使用参数 go...run . artisan mail:send hello // 使用选项 go run . artisan mail:send --mail abc@qq.com 就连 struct 的定义都是满满的回忆...,原来的味道。
引入redis composer require predis/predis 会在composer.json中引入最新版本的predis composer update 把下载predis 库加入到...vendor,命令执行成功后,如图: 配置redis 说到laravel 中redis 的配置,其实默认项目中已经有了相关配置,只是默认没有使用。...使用redis 做缓存 默认使用的file 做缓存,修改的话,也很简单,直接修改.env 文件中的配置参数就OK。...,把 SESSION_DRIVER=file 改成 SESSION_DRIVER=redis 使用redis 注意:redis 是在app/config/app.php 里添加过aliases 数组中的...我们可以在Redis门面上以静态方法的方式调用Redis客户端提供的任何命令(Redis命令大全),然后Laravel使用魔术方法将命令传递给Redis服务器并返回获取的结果。
laravel 5.4 改变了默认的数据库字符集,现在utf8mb4包括存储emojis支持。如果你运行MySQL v5.7.7或者更高版本,则不需要做任何事情。...当你试着在一些MariaDB或者一些老版本的的MySQL上运行 migrations 命令时,你可能会碰到下面这个错误: [Illuminate\Database\QueryException] SQLSTATE...Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes 我们可以在...AppServiceProvider.php 文件里的 boot 方法里设置一个默认值: <?
有时候我们需要在 Laravel 的 Blade 模版中定义一些变量,而 Blade 却没有提供这样的方法/ /,所以我们这里为大家分享两种可以实现在 Blade 模版中定义变量的方法。...方法一 由于 Blade 模版中允许使用原生 PHP 代码,所以我们可以使用 PHP 语句来定义变量: <?php $var/ / = 'test'; ?...> {{ $var }} 方法二 除了上面的方法,我们还可以使用 Blade 的注释语法来定义/设置变量。由于在 Blade 中 {{-- 这里是注释 --}} 会被解析为 <?php / / ?...>,所以我们可以使用下面这样的语句来定义变量: {{-- --}} // 这条语句会被 Blade 解析为 <?php / /$i=0;/ / ?...以上这篇在Laravel 的 Blade 模版中实现定义变量就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
然后修改php.ini开启扩展, 之后php -m看到swoole-tracker就代表安装成功了 然后按着官方使用, 先增加trackerHookMalloc函数, 然后打开另一个命令行执行php -...队列(使用supervisor守护进程) 环境配置 在项目里新建queue.Dockerfile FROM phpswoole/swoole:php7.4-alpine RUN sed -i 's/dl-cdn.alpinelinux.org...nodaemon 参数 CMD ["/usr/bin/supervisord", "--nodaemon", "-c", "/etc/supervisord.conf"] 如需增加运行队列进程, 改动文件中的...t1 执行好上面的重启任务之后laravel会把时间戳t2写入缓存 每一个队列任务执行完成之后,从缓存中拿出时间戳,如果t2不等于t1停止当前进程 由于supervisord设置了autostart,...-v映射本地目录 更新代码的时候是更新宿主机代码, 然后映射到容器中, 容器再按照上面的命令重启队列, 即可加载最新代码 更新代码方法3 构建好新的容器镜像进行 停止旧的容器队列进程 ## 执行此命令后后查看队列进程无任务输出
1、常见的使用方式(设置为null) 2、关于别的属性的介绍 CASCADE:这就是默认的选项,级联删除,你无需显性指定它。...SET_NULL: 置空模式,删除的时候,外键字段被设置为空,前提就是blank=True, null=True,定义该字段的时候,允许为空。...SET_DEFAULT: 置默认值,删除的时候,外键字段设置为默认值,所以定义外键的时候注意加上一个默认值。...SET(): 自定义一个值,该值当然只能是对应的实体了 3、补充说明:关于SET()的使用 **官方案例** def get_sentinel_user(): return get_user_model...class MyModel(models.Model): user = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete
$message->to($user->email)->subject('新功能发布'); }); } } 三、推送队列任务 手动分发任务 我们可以使用控制器中的...DispatchesJobs trait(该trait在控制器基类Controller.php中引入)提供的dispatch方法手动分发任务: //在控制器中use use App\Jobs\SendReminderEmail...http://laravel.app:8000/mail/sendReminderEmail/1,此时任务被推送到Redis队列中,我们还需要在命令行中运行Artisan命令执行队列中的任务。...注:使用 queue:work --daemon ,当更新代码的时候,需要停止,然后重新启动,这样才能把修改的代码应用上。...所以我们接下来在命令行中运行如下命令: php artisan queue:work --daemon
领取专属 10元无门槛券
手把手带您无忧上云