Laravel 应该是在5.几之后吧,其laravel/ui项目的前端框架默认使用Bootstrap与Vue。 1. 无法打印vue实例 对于vue官方文档中的例子,我们都可以在浏览器console窗口通过app变量打印出vue实例。 但是在laravel/ui的页面中,我们打印app变量时候,输出的却是id="app"的那个dom元素,并不是在/resources/js/app.js中定义的vue实例。 const app = new Vue({ el: '#app', }); 原因是…
Laravel 6 - 加密解密与哈希
1. 加密解密 全局辅助函数: encrypt($value, $serialize = true) decrypt($value, $unserialize = true) Facade: Crypt::encrypt($value, $serialize = true) Crypt::decrypt($value, $unserialize = true) 这两组加解密函数的效果是一样的。它们实际调用的都是app('encrypter') 绑定实例,这是一个在Illuminate\Encryption\…
Laravel 6 - Model的mass assignment
在Laravel的Eloquent ORM中,Mass Assignment是指以数组形式对模型的属性进行赋值,比如:Model->fill(array $attributes) ,Model::create(array $attributes) 。与之对立的是指单一属性的赋值,比如:Model->age=18 。 考虑这么一个场景: 在用户注册的时候,后台通常使用User::create($attributes) 来进行用户模型的创建并写入数据库。这里的$attributes数组来自于用户提交…
Laravel 6 - 输出详细日志
Log::debug('debug message'); 的默认输出实在是太简陋了 最起码应该加上输出日志时候的文件与代码所在行吧。幸好Log::debug() 接受一个数组实参作为第二个参数,并格式化后一同输出。所以我们可以把__FILE__魔术常量放在这个数组参数中交给Log打印。 Log::debug('debug message', ['file' => __FILE__, 'line' => __LINE__]); 输出如下: 我们也可以将一些想要打印的变量放在第二个实…
Laravel 6 – 从基本用户认证深入理解Laravel
启用Laravel的基本用户认证模块后,就会自动生成几个用户注册/登录/密码找回的页面。我们就来从这几个页面深入理解Laravel的用法。 1. 找到路由 这几个路由都由/routes/web.php文件中新增的Auth::routes(); 这一行注册的。 1.1 Facade 这个用法涉及到了Laravel的facade概念,facade是指用看起来像调用类的静态方法的语法(类名::静态方法)来调用容器中对应实例的同名公有方法的一种用法。 我们可以在/config/app.php的aliases数组中找…
Laravel 6 - 使用Laravel 6的用户认证“脚手架”
1. 创建laravel 6项目 在工作目录下执行如下命令,通过composer创建laravel项目。 composer create-project --prefer-dist laravel/laravel blog "6.*" 该命令会在当前工作目录下生成blog项目目录。整个目录结构如下,关于laravel项目目录结构的说明可以参考Laravel Docs 然后使用php artisan serve 启动网站服务,或者配置nginx来运行网站。 初始的网站只有两个路由,可以通过命令php arti…
坑,Laravel的cache系统与entrust与throttle
laravel默认是使用file做cache驱动的,但file与database驱动的cache无法支持tag,这就与我用到的entrust插件冲突了,所以改成了array作为cache系统的驱动。 后来想用throttle中间件的时候,发现throttle无效,一猜就是cache的问题,因为改用array做cache后,array其实相当于一次进程获得的内存空间开辟的一块数组,那么如果cache在这个数组里面,请求处理完后,这个数组已经没有啦!所以throttle根本不起作用。想了想最好的办法还是得换re…
Laravel框架 - 打印容器实例
初学laravel的时候,看到service provider这一块,一直纠结如何才能打印出容器内所有的service provider,因为光靠config/app.php文件,很难从alias看出其对应的service provider到底是哪个。后来才发现,其实在程序的任意地方(Application启动后),都可以通过 Container::getInstance()这个静态方法获取当前的Application实例。或者可以使用在全局helps.php中定义的的 app()方法来获取当前Applic…
Laravel框架 - 容器、绑定与依赖注入
laravel框架的核心概念就是容器,打开laravel的入口文件public/index.php,一路追寻,会发现laravel框架在初始化时会新建一个Illuminate\Foundation\Application实例对象赋值给$app这个全局变量。这个Application实例就是我们的laravel容器(Application是Container的子类),是整个laravel程序的基础: 一、容器 容器,就是用来装东西的,对吧。现实中的容器可以用来装水、装米,但编程世界中的容器装的则…
Laravel框架 - 命令行工具artisan
说在前面的话: laravel算是近几年最火的php web开发框架了,在github的php项目中稳居第一(Most Popular PHP Project at Github)。star数量甚至是我先前挚爱codeigniter的两倍。这几天抽空看了下laravel的文档与入门视频(laracasts.com),惊讶于现在的php居然已经能写成这样了,laravel简直就是php届的spring。容器、依赖注入、中间件。。。跟朴实无华的codeigniter相比简直就是在炫技,当然这也成了laravel…