laravel框架学习

一、文件上传
在控制器中按下面所示书写

public function upload(){
    
    
	$this->domain = $_SERVER['HTTP_HOST']; 
	//获取当前域我, 其实这个是不应该写在这儿(应该是一个全局),我只是做个例子。
	$file = $this->require->file('file');
	$name = $file->getClientOriginalName(); //文件名,前端传来的文件名,包括了扩展名
	$ext = $file->getClientOriginalExtension(); //文件的扩展名,只有扩展名
	$path = $file->move('./upload' , $name); //将临时文件移动到指定的目录
	$pathAll = $this->domain . '/upload/' . $name;
	$arr = [
	    'path'  =>  $pathAll,
	    'msg'   =>  '上传成功'
	];
	return response()->json($arr , 200);
	//注:response()->json($arr , 200)
	//后面的200为http的状态码。默认就是200,如果想用其他的状态码,请直接写上其他的
}

二、jwt的安装和使用
1、安装

composer require tymon/jwt-auth 1.*@rc

2、配置

# 这条命令会在 config 下增加一个 jwt.php 的配置文件
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"
 
# 这条命令会在 .env 文件下生成一个加密密钥,如:JWT_SECRET=foobar
php artisan jwt:secret

3、 修改 auth.php

//在 guards 部份
'guards' => [
	'web' => [
	    'driver' => 'jwt',
	    'provider' => 'users', //注意这儿的 users 需要跟下面 providers 部份的 名字一样
	],
],

'providers' => [
	'users' => [
		'driver' => 'eloquent',
		'model' => App\Models\User::class,
	],
],

4、修改user.php文件

//在该文件最下面,添加如下代码
public function getJWTIdentifier()
{
    
    
	return $this->getKey();
}

public function getJWTCustomClaims()
{
    
    
	return [];
}

5、在控制中使用

use Tymon\JWTAuth\Facades\JWTAuth;
use Illuminate\Support\Facades\Hash; //存入数据库的密码需要使用 hash加密  Hash::make('123456');
use App\Models\User;

public function setToken(){
    
    
	//方法一
	$u = User::first(); //查询用户表
	$token = JWTAuth::fromUser($u);
	var_dump($token);
	
	//方法二
	$postData = [
		'email' => '10aqq.com',
		'password'  =>  '123456'
	];
	$token = JWTAuth::attempt($postData);
}

三、多应用或者叫多模块(admin、index、api)
1、在项目根目下,执行

composer require nwidart/laravel-modules

2、执行完上面的语句后,在项目的 composer.json文件 中加上一行代码

"autoload": {
    
    
       "psr-4": {
    
    
           "App\\": "app/",
           "Database\\Factories\\": "database/factories/",
           "Database\\Seeders\\": "database/seeders/",
           "Modules\\": "Modules/" //注意,只有这一句才是需要加上去的,
       }
   },

3、再执行下面的语句(常试下,如果不执行能不能跑

php artisan vendor:publish --provider="Nwidart\Modules\LaravelModulesServiceProvider"

4、上面三步执行完之后,我们就可以选择性的添加我们需要的模块了。

php artisan module:make Admin
php artisan module:make Index
php artisan module:make Api
php artisan module:make Test

5、别忘了还有最后一步

composer dump-autoload

之后就会在项目的根目录下看到如图所示(根目录下有一个Modules目录,该目录下会有我创建好的模块)
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42371812/article/details/134624311