当前位置: 首页 > news >正文

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

转载于:https://www.cnblogs.com/ivy-zheng/p/11045698.html

相关文章:

  • 没事干 回忆下快排
  • 并发
  • 微信-小程序-开发文档-服务端-模板消息:templateMessage.deleteTemplate
  • SmartGit 合并分支,图文
  • mysql创建用户
  • [2019/05/17]解决springboot测试List接口时JSON传参异常
  • linux内核代码基础篇(一)一目录架构说明
  • 基于 Egg.js 框架的 Node.js 服务构建之用户管理设计
  • WPF — Grid布局中行的高度和列的高度值定义的三种形式
  • 判断两个字符串是否互为变形词
  • Blob
  • JVM学习笔记:对象的内存布局和访问定位
  • 图像质量评估-锐度
  • NKOJ4241 蚯蚓 (【NOIP2016 DAY2】)
  • spring IOC bean中注入bean
  • Angular 响应式表单 基础例子
  • Go 语言编译器的 //go: 详解
  • JavaScript 基本功--面试宝典
  • Otto开发初探——微服务依赖管理新利器
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 百度小程序遇到的问题
  • 分布式熔断降级平台aegis
  • 规范化安全开发 KOA 手脚架
  • 排序算法学习笔记
  • 前端知识点整理(待续)
  • 入口文件开始,分析Vue源码实现
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 为视图添加丝滑的水波纹
  • 赢得Docker挑战最佳实践
  • ​TypeScript都不会用,也敢说会前端?
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #{}和${}的区别?
  • #ifdef 的技巧用法
  • #Linux(make工具和makefile文件以及makefile语法)
  • #QT(TCP网络编程-服务端)
  • (C语言)fread与fwrite详解
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (ZT)出版业改革:该死的死,该生的生
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (算法)N皇后问题
  • (一)kafka实战——kafka源码编译启动
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转) ns2/nam与nam实现相关的文件
  • .Net 8.0 新的变化
  • .NET BackgroundWorker
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • @RunWith注解作用