laravel 5.5入门系列——4

向Laravel进军4

什么是Artisan命令

Artisan 是 Laravel 自带的命令行接口,它提供了许多实用的命令来帮助你构建 Laravel 应用。要查看所有可用的 Artisan 命令的列表,可以使用 list 命令:php artisan list .每个命令包含了「帮助」界面,它会显示并概述命令的可用参数及选项。只需要在命令前面加上 help 即可查看命令帮助界面:php artisan help migrate

经常用的artisan命令有: 

这里写图片描述


Laravel的前端工作

完成了基本的静态页面,如果要做一些好看的效果,那必须有一定前端的基础:html,css,js 能用bootstrap框架写样式.Laravel的前端工作由npm,sass,yarn,Laravel-mix组成。

  1. Laravel 在运行时,是以 public 文件夹为根目录的,因此我们可以使用下面这行代码来为 Laravel 引入样式 
     引入的是public/css/app.css 文件

  2. 为局部视图增加前缀下划线是『约定俗成』的做法,方便了其它人快速地理解该文件的实际作用

  3. 如果前端调试时,可以在webpack.mix.js中添加语句 mix.browserSync(‘sample.dev') 
    然后npm run watch-poll·

  4. 命名路由:在 Laravel 中,我们可以通过在路由后面链式调用 name 方法来为路由指定名称 
    Route::get('/help', 'StaticPagesController@help')->name('help'); 
    这样在html页面中插入php的链接可以写成:帮助

  5. {{ }}是在 HTML 中内嵌 PHP 的 Blade 语法标识符,表示包含在该区块内的代码都将使用 PHP 来编译运行。


什么是MVC

MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。 
- Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。 
- View(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。 
- Controller(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。


Eloquent模型

Eloquent 是 Laravel 的 ‘ORM’,即 ‘Object Relational Mapping’,对象关系映射。ORM 的出现是为了帮我们把对数据库的操作变得更加地方便。Eloquent 让一个 ‘Model类’ 对应一张数据库表,并且在底层封装了很多 ‘function’,可以让 Model 类非常方便地调用。Laravel 的 Eloquent ORM 提供了漂亮、简洁的 ActiveRecord 实现来和数据库交互。每个数据库表都有一个对应的「模型」用来与该表交互。你可以通过模型查询数据表中的数据,并将新记录添加到数据表中。Active Record 是一种领域模型模式,其特点是一个模型类对应关系型数据库中的一个表,模型类的一个实例对应表中的一行记录。Active Record 最大优点是允许我们简单, 直观地操作数据层。

看一段最简单的例子:

<?phpuse Illuminate\Database\Eloquent\Model;class Article extends Model {protected $fillable = [];
}123456789

protected $fillable = [];’ 这一行代码在这里没有任何价值,是 generator 自动生成的。如果那一行没有意义的代码也不算上的话,这个文件就只有两个有实际意义的东西: ‘Article’ 和 ‘\Eloquent’。没错,Eloquent 就是这么屌炸天,只需要继承一下 Eloquent 类,就可以干 ‘first() find() where() orderBy()’ 等非常非常多的事情,这是面向对象的强大威力。


数据库迁移

在 Laravel 中,我们使用 数据库迁移 来管理数据库表结构,迁移就像是数据库中的版本控制,它让团队成员之间能够轻松的修改跟共享应用程序的数据库结构,而不用担心并行更新数据结构而造成冲突等问题。同时也让 Laravel 项目的部署变得很方便。不仅如此,Migration 建表要比直接手动创建表或者 .sql 文件具备额外的管理数据库的功能,如:回滚/重置/更新等。Migration 的建表方法大部分情况下能兼容 MySQL, PostgreSQL, SQLite 甚至是 Oracle 等主流数据库系统。

所有创建的迁移文件都被统一放在 database/migrations文件夹里,打开文件夹可以看到两个默认迁移文件

database/migrations/2014_10_12_000000_create_users_table.phpdatabase/migrations/2014_10_12_100000_create_password_resets_table.php12

一个是用户表,一个是密码找回表,看看用户表怎么写的,学会写迁移文件:

increments('id');            $table->string('name');            $table->string('email')->unique();            $table->string('password', 60);            $table->rememberToken();            $table->timestamps();
        });
    }    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('users');
    }
}1234567891011121314151617181920212223242526272829303132333435

创建数据表

主要部分就是up方法,自行看看相关内容。迁移时执行up方法,回滚时执行down方法。在 up 方法里面,我们通过调用 Schema 类的 create 方法来创建 users 表:

Schema::create('users', function (Blueprint $table) {    ...});123

定义字段

利用$table->increament('id'); 创建一个自增的integer类型的id字段 
利用$table->string('email')->unique(); 创建一个唯一的email字段 
利用$table->rememberToken(); 创建一个用于’记住我‘的remember_token字段 
利用$table->timestamps(); 创建 create_at 和一个update_at 字段 
详细内容见 Laravel5.5数据库迁移文档

在项目根目录下执行迁移php artisan migrate 
数据库回滚php artisan migrate:rollback

数据库配置

理一下思路:我们是用的Homestead作为开发环境,修改代码的话在本地(毕竟有图形界面的IDE自然是用起来更舒服)。所以说建立了一个laravel项目之后,我们修改的Homestead.yaml然后重启虚拟机provision+reload是通过vagrant将Homestead的配置更改了,配好的是虚拟机中的数据设置,站点设置,简化了本地开发的成本,步骤简单。但是做完项目要上线的话,如何在一个纯的ubuntu里配好一个能跑laravel项目的环境,还是有点折腾的,这里不详细讲配环境的问题,需要了解环境配置问题可以查看写好的laravel部署上线的文章。(以后开发新项目学会用Docker部署起来会更方便)现在知道这些过程已经被简化了就好啦。但是我们需要用到数据库,如果要直观的用GUI查看数据,在本机上操作自然是更方便的,所以需要解释一下,laravel项目中的.env配置的数据库端口设置是3306. 

数据库基本信息

 
但开发环境是虚拟机,而虚拟机中的3306端口其实会对应到本机的33060端口。 

映射端口关系

 
因此本机用数据库工具连接的时候,端口号应该选择33060.本机的数据库查看工具用啥随意,每次执行迁移完了可以自己看看情况。当然如果你学会了一些基本的mysql命令,其实也不太需要数据库管理工具。用win同学可以下载一个HeidiSQL.使用的时候,填的信息就根据.env上来: 

查看工具配图

 
好啦够详细了,打开之后就能看到迁移数据库后的数据库信息啦。