laravel5.5入门-安装和认证
一、安装
在终端CMD里切换到你想要放置该网站的目录下(如 d:\project\laravel),运行命令
composer create-project laravel/laravel learnlaravel5 ^5.5
然后,稍等片刻,当前目录下就会出现一个叫 learnlaravel5 的文件夹,安装完成啦~
二、运行
1、如果想要在wamp下运行,把laravel项目安装在wamp下的www目录下,例如我的wamp安装路径是D:\soft\wamp64,
把laravel放在D:\soft\wamp64\www下,然后浏览器打开localhost,你会发现你的项目在1标示处,在2标示处添加一个新的虚拟机,配置laravel
入口路径,添加好后虚拟机会出现在3标示处
点击laravel.test.com,即可运行laravel
2、使用本地开发服务器
如果你在本地安装了 PHP,并且想使用 PHP 内置的开发服务器来为你的应用程序提供服务,那就使用 Artisan 命令 serve
。这个命令会在 http://localhost:8000
上启动开发服务器:
切换到项目安装目录 d:/project/learnlaravel5,执行 php artisan serve
即可在浏览器输入http://127.0.0.1:8000/打开laravel了
三、体验 Auth 系统
Laravel 利用 PHP5.4 的新特性 trait 内置了非常完善好用的简单用户登录注册功能,适合一些不需要复杂用户权限管理的系统,例如公司内部用的简单管理系统。
激活这个功能非常容易,运行以下命令:
php artisan make:auth
访问 http://127.0.0.1:8000/login
,看到以下页面:
四、连接数据库
a. 修改配置
不出意外的话,learnlaravel5 目录下已经有了一个 .env 文件,如果没有,可以复制一份 .env.example 文件重命名成 .env,修改下面几行的值:
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel5
DB_USERNAME=root
DB_PASSWORD=password
推荐新建一个名为 laravel5 的数据库(编码设置为 utf8mb4),并且使用 root 账户直接操作,降低学习数据库的成本。
b. 进行数据库迁移(migration)
运行命令:
php artisan migrate
我们得到了如下结果:
» php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table
数据库迁移成功!mysql里生成表如下
然后在http://127.0.0.1:8000/register里注册一个用户,zxm/123456,成功后显示
c. migration 是啥?
打开 learnlaravel5/database/migrations/2014_10_12_000000_create_users_table.php
文件,你肯定能一眼看出它的作用:
用 PHP 描述数据库构造,并且使用命令行一次性部署所有数据库结构。
小提示:修改后env文件有时注册时会报
Access denied for user 'homestead'@'localhost'
错误,解决方法:
1、检查env文件是否更改正确
2、重启服务
五. 使用 Laravel 的ORM:Eloquent
Eloquent 是 Laravel 的 ORM,是 Laravel 系统中最强大的地方,没有之一。当初 Laravel 作者在开发第一版的时候花了整整三分之一的时间才搞出来 Eloquent,Eloquent 也是 Laravel 中最慢的地方,迄今无法解决。(路由、自动载入、配置分散、视图引发的性能问题都通过缓存几乎彻底解决了,Composer Autoload 巨量的性能消耗也被 PHP7 手起刀落解决了)
a. Eloquent 是什么
Eloquent 是 Laravel 内置的 ORM 系统,我们的 Model 类将继承自 Eloquent 提供的 Model 类,然后,就天生具备了数十个异常强大的函数,从此想干啥事儿都是一行代码就搞定。
经过了三年多的大规模使用,我发现 Eloquent 另辟蹊径采用和 Java 技术完全不同的思路解决了多人开发耦合过重的问题:数据库相关操作全部用一句话解决,Model 中不写共用函数,大幅降低了 bug 几率。什么?你说性能?软件工程研究的对象是人,性能的优先级比代码格式规范都低好嘛。我时刻谨记:代码是写给人看的,只是恰好能运行。
b. 怎么用?
我们使用 Artisan 工具新建 Model 类及其附属的 Migration 和 Seeder(数据填充)类。
运行以下命令:
php artisan make:model Article
去看看你的 app 目录,下面是不是多了一个 Article.php 文件?那就是 Artisan 帮我们生成的 Model 文件:
<?php namespace App; use Illuminate\Database\Eloquent\Model; class Article extends Model
{
//
}
如此简洁有力的代码,隐藏了背后极高的难度和巨大的复杂度,让我们闭上眼睛,静静地感受 Laravel 的优雅吧 (~ ̄▽ ̄)~
六. 使用 Migration 和 Seeder
接下来我们生成对应 Article 这个 Model 的 Migration 和 Seeder。
a. 使用 artisan 生成 Migration
在 learnlaravel5 目录下运行命令:
php artisan make:migration create_articles_table
成功之后打开 learnlaravel5/database/migrations
,你会发现有一个名为 2*****_create_articles_table 的文件被创建了。我们修改他的 up 函数为:
public function up()
{
Schema::create('articles', function (Blueprint $table)
{
$table->increments('id');
$table->string('title');
$table->text('body')->nullable();
$table->integer('user_id');
$table->timestamps();
});
}
这几行代码描述的是 Article 对应的数据库中那张表的结构。Laravel Model 默认的表名是这个英文单词的复数形式,在这里,就是 articles。接下来让我们把 PHP 代码变成真实的 MySQL 中的数据表,运行命令:
php artisan migrate
执行成功后,articles 表已经出现在数据库里了:
b. 使用 artisan 生成 Seeder
Seeder 是我们接触到的一个新概念,字面意思为播种机。Seeder 解决的是我们在开发 web 应用的时候,需要手动向数据库中填入假数据的繁琐低效问题。
运行以下命令创建 Seeder 文件:
php artisan make:seeder ArticleSeeder
我们会发现 learnlaravel5/database/seeds
里多了一个文件 ArticleSeeder.php
,修改此文件中的 run 函数为:
public function run()
{
DB::table('articles')->delete(); for ($i=0; $i < 10; $i++) {
\App\Article::create([
'title' => 'Title '.$i,
'body' => 'Body '.$i,
'user_id' => 1,
]);
}
}
上面代码中的 \App\Article
为命名空间绝对引用。如果你对命名空间还不熟悉,可以读一下 《PHP 命名空间 解惑》,很容易理解的。
接下来我们把 ArticleSeeder 注册到系统内。修改 learnlaravel5/database/seeds/DatabaseSeeder.php
中的 run 函数为:
public function run()
{
$this->call(ArticleSeeder::class);
}
由于 database 目录没有像 app 目录那样被 composer 注册为 psr-4 自动加载,采用的是 psr-0 classmap 方式,所以我们还需要运行以下命令把 ArticleSeeder.php
加入自动加载系统,避免找不到类的错误:
composer dump-autoload
然后执行 seed:
php artisan db:seed
你应该得到如下结果:
这时候刷新一下数据库中的 articles 表,会发现已经被插入了 10 行假数据:
参考:https://github.com/johnlui/Learn-Laravel-5/issues/16
laravel5.5入门-安装和认证的更多相关文章
- Debian 入门安装与配置2
Debian 入门安装与配置2 1. C/C++开发必装软件 atp-get install gcc 这个不用说,用来编译C程序 apt-get install g++ 用来编译C++程序 ap ...
- Debian 入门安装与配置1
Debian 入门安装与配置1 最近安装了多个发行版本的Linux,包括Ubuntu.Fedora.Centos和Debian,发现只有Debian在界面和稳定性等综合特性上表现最优,自己也最喜欢,所 ...
- Activity工作流(2)-入门安装运行第一个例子
转: Activity工作流(2)-入门安装运行第一个例子 置顶 2017年05月24日 15:58:50 li_ch_ch 阅读数:24432 版权声明:本文为博主原创文章,未经博主允许不得转载 ...
- elk系列1之入门安装与基本操作【转】
preface 我们每天都要查看服务器的日志,一方面是为了开发的同事翻找日志,另一方面是巡检服务器查看日志,而随着服务器数量以及越来越多的业务上线,日志越来越多,人肉运维相当痛苦了,此时,参考现在非常 ...
- react入门安装
react的入门安装 1.react的适用方法有两种,其一是依赖在线的cdn地址: https://reactjs.org/docs/cdn-links.html 官方给的cdn地址如下 <sc ...
- 在SuSE安装wifidog认证服务器和网关
在SuSE安装认证服务器和网关 在openSuSE 10.3安装wifidog 认证服务器和网关在同台设备中安装完毕.以下是openSuSE的详细安装指南.这个安装是非常初级的,所以请验证或更正. - ...
- Redis介绍及入门安装及使用
Redis介绍及入门安装及使用 什么是Redis Redis is an open source (BSD licensed), in-memory data structure store, use ...
- laravel5.2/laravel5.3入门指南 Windows 上快速安装并运行 Laravel 5.x
1 首先要搭建本地服务器环境推荐phpstudy2016及wampServer3.0.6 下载链接可参考 http://www.cnblogs.com/zzcit/p/5823742.html 注意一 ...
- MongoDB 学习笔记之 入门安装和配置
下载MongoDB: 下载解压即可使用. 为了启动方便和统一管理, 在Mongo根目录下建立/data, /logs, /conf文件夹. 在conf文件夹下建立mongodb.conf 文件,基本配 ...
随机推荐
- TTTTTTTTTTT POJ 2749 修牛棚 2-Sat + 路径限制 变形
Building roads Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7019 Accepted: 2387 De ...
- 【杂题】[AGC034F] RNG and XOR【集合幂级数】【FWT】【DP】
Description 你有一个随机数生成器,它会以一定的概率生成[0,2^N-1]中的数,每一个数的概率是由序列A给定的,Pi=Ai/sum(Ai) 现在有一个初始为0的数X,每一轮随机生成一个数v ...
- Jmeter(三) 从上传图片来入门Jmeter
用Jmeter上传用户头像到人人网 先用抓包工具Fiddler把上传操作的报文抓取下来 开启Jmeter,在测试计划中创建一个线程组,取名为“图片上传” 再在线程组中创建一个HTTP请求 在请求报文中 ...
- Spring Boot教程(三十一)使用Spring-data-jpa(2)
创建实体 创建一个User实体,包含id(主键).name(姓名).age(年龄)属性,通过ORM框架其会被映射到数据库表中,由于配置了hibernate.hbm2ddl.auto,在应用启动的时候框 ...
- 使用 vuetron 调试 mpvue 项目
简介 由于小程序开发工具的封闭,我们无法通过安装 chrome 插件来方便地使用 vue-devtools 调试我们的 mpvue 项目.vuetron 是一个 vue.js 的项目调试工具, 同时支 ...
- springboot+mybatis 使用事务
一.一些概念 声明式的事务管理是基于AOP的,在springboot中可以通过@Transactional注解的方式获得支持,这种方式的优点是: 1)非侵入式,业务逻辑不受事务管理代码的污染. 2)方 ...
- jsp里面自定义标签常量详解
标签中静态常量: EVAL_BODY_INCLUDE:告诉服务器正文的内容,并把这些内容送入输出流 SKIP_BODY:告诉服务器不要处理正文内容 EVAL_PAGE:让服务器继续执行页面 SKIP_ ...
- 用了 EventBus 不要多用其他的通讯功能
EventBus是一个Android端优化的publish/subscribe消息总线,简化了应用程序内各组件间.组件与后台线程间的通信.主要功能是替代Intent,Handler,BroadCast
- vue2.0 父子组件之间的通信问题
概要: 父组件向子组件通信:props属性 子组件向父组件通信:$emit()触发事件,$on()监听事件 在 vue 1.0 中可以使用$dispatch 和 $broadcast来实现 向上派发事 ...
- snmpEngineBoots & snmpEngineID数据存储到非易失性存储设备
#include <stdio.h> #include <stdlib.h> #include <string.h> int regenerateID() { ; ...