laravel学习笔记3--高级

一、artisan

1、基本使用:

1.1、查看基本命令:

php artisan

1.2、查看具体命名的使用:

php artisan help migrate

 

1.3、创建控制器:

php artisan make:controller TestController

1.4、创建模型:

php artisan make:model Test

1.5、创建中间件:

php artisan make:middleware Test

 二、用户验证:

1、生成Auth所需文件:

php artisan make:auth

执行成功在路由中增加如下代码,在view层中增加如下文件:

访问/home路径,会跳转到用户登录页面:

2、数据迁移:

php artisan migrate

如果出现如下报错:

则需要添加如下代码:

Schema::defaultStringLength(191);

数据迁移执行成功,数据表就新增了三张表:

 

备注:数据迁移执行的创建数据表数据来源:

 

 

3、注册登录

执行成功数据迁移后,就可以在页面注册登录用户

注册成功,数据表就新增一条用户信息

三、数据迁移

1、新建一张表的迁移文件

php artisan make:migration create_students_table --create=students

2、生成模型的同时生成迁移文件

php artisan make:model Article -m // 添加-m就会同时生成迁移文件

3、使用迁移文件创建表:

php artisan migrate

四、数据填充

1、创建一个填充文件,并完善填充文件

php artisan make:seeder StudentTableSeeder

生成的填充文件:

在run方法中使用查询构造器添加数据:

 

2、执行单个填充文件

php artisan db:seed --class=StudentTableSeeder

如果出现如下错误:

则执行composer命令:

composer dump-autoload

填充成功,数据表多了两条数据:

 

3、批量执行填充文件

在DatabaseSeeder的run方法上添加,有其他表需要填充数据时可以添加多条:

$this->call(StudentTableSeeder::class);

然后在命令行中执行,即可实现数据填充:

php artisan db:seed

 五、文件上传:

1、在配置文件中新增文件上传目录:

        'uploads' => [
            'driver' => 'local',
            'root' => storage_path('app/uploads'),
        ],

2、上传方法:

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;

class StudentController extends Controller
{
    public function upload(Request $request)
    {
        if ($request->isMethod('POST')) {
            $file = $request->file('file');
            //    文件是否上传成功
            if ($file->isValid()) {
                //    原文件名
                $originalName = $file->getClientOriginalName();
                //    扩展名
                $ext = $file->getClientOriginalExtension();
                //    MimeType
                $type = $file->getClientMimeType();
                //    临时绝对路径
                $realPath = $file->getRealPath();

                $fileName = date('Y-m-d-H-i-s') . '-' . uniqid() . '.' . $ext;

                $bool = Storage::disk('uploads')->put($fileName, file_get_contents($realPath));
                dd($bool);
            }
        }
        return view('student.upload');
    }
}

六、邮件发送

1、配置

 

posted @ 2018-10-29 17:40  郑楚周  阅读(327)  评论(0编辑  收藏  举报