Laravel 6 教程学习笔记

2020-01-14 16:19:42 969 思小齐 思小齐

本文为 《L01 Laravel 教程 - Web 开发实战入门 ( Laravel 6.x )》 课程学习笔记,方便工作中快速查看 Laravel 6 重要知识点。

原文链接:https://www.childsay.com/lara...
同步时间:2019-10-12

homestead vagrant 常用操作

// 确保在此目录下操作
cd ~/Homestead

// 开启 Homestead 虚拟机
vagrant up

// 通过 SSH 链接 Homestead 虚拟机
vagrant ssh

// 关机
vagrant halt

// 对 Homestead.yaml 文件修改后,执行以下命令生效
vagrant provision && vagrant reload

链接 Homestead 里 MySQL 数据库

  • host 127.0.0.1
  • port 33060
  • user homestead
  • password secret

使用阿里云的 Composer 加速镜像

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

创建 Laravel 6.x 项目,项目名称为 weibo

composer create-project laravel/laravel weibo --prefer-dist "6.*"

Blade 模板继承布局

布局文件定义

// resources/views/layouts/default.blade.php
<!DOCTYPE html>
<html>
  <head>
    <title>@yield('title', 'Weibo App')</title>
  </head>
  <body>
    @yield('content')
  </body>
</html>

布局使用方法

// resources/views/static_pages/help.blade.php

@extends('layouts.default')
@section('title', '帮助')

@section('content')
  <h1>帮助页</h1>
@stop

如果删除 @section('title', '帮助') ,网页 title 则默认显示 Weibo App 。如果 @section 不传第二个参数,则需要使用 @stop 来标识 @section 区块结束。

常用 artisan 命令说明

命令 说明
php artisan key:generate 生成 App Key
php artisan make:controller 生成控制器
php artisan make:model 生成模型
php artisan make:policy 生成授权策略
php artisan make:seeder 生成 Seeder 文件
php artisan migrate 执行迁移
php artisan migrate:rollback 回滚迁移
php artisan migrate:refresh 重置数据库
php artisan db:seed 填充数据库
php artisan tinker 进入 tinker 环境
php artisan route:list 查看路由列表

通过 laravel ui 使用 bootstrap

composer require laravel/ui --dev

php artisan ui bootstrap

// 配置 npm 和 yarn 使用淘宝镜像
npm config set registry=https://registry.npm.taobao.org
yarn config set registry 'https://registry.npm.taobao.org'

yarn install --no-bin-links

// resources 目录下文件改变时会自动编译,输出到 public 目录中。
npm run watch-poll

如果执行失败,删除 package.json 中的 cross-env 并在 devDependencies 中加入 "vue-template-compiler": "^2.6.10"

静态资源使用

<link rel="stylesheet" href="{{ mix('css/app.css') }}">

mix 函数使用 public 作为根目录,最终生成 /css/app.css

静态资源缓存问题

// webpack.mix.js
mix.js('resources/js/app.js', 'public/js')
   .sass('resources/sass/app.scss', 'public/css').version();

只需要添加 .version() 即可,最终生成文件 /css/app.css?id=350d79d6458127c0fe98" ,文件有改动时 id 值会改变,缓存失败。

数据库迁移和数据填充

// 执行迁移,迁移文件中的 up 方法将会执行
php artisan migrate

// 回滚撤消最近一次迁移操作
php artisan migrate:rollback

// 重置数据库,数据会被清空。
php artisan migrate:refresh

执行数据填充步骤,定义模型工厂(非必须)、定义 Seeder 文件、在 DatabaseSeeder.php 中定义填充执行顺序

// 数据库的重置和填充操作
php artisan migrate:refresh
php artisan db:seed

// 一条命令完成以上操作
php artisan migrate:refresh --seed

// 执行指定的填充文件
php artisan make:seeder UsersTableSeeder