Laravel notice

Laravel notice

文档
https://github.com/barryvdh/laravel-ide-helper
安装

composer require --dev barryvdh/laravel-ide-helper

将以下类添加到config/app.php中的providers数组中:

Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,

命令

php artisan ide-helper:generate

现在这个命令应该会生成一个叫_ide_helper.php的文件,
现在phpstorm已经支持代码提示, 如果没有, 可以重启IDE一下试试

自定义公共函数的引入

Laravel 自定义公共函数的引入_laravel 公共函数引入-CSDN博客

背景

步骤指导

1. 创建 functions.php

<?php
/**
 * Created by PhpStorm.
 * User: moTzxx
 * Date: 2017/12/28
 * Time: 17:47
 */

/**
 * 公用的方法  返回json数据,进行信息的提示
 * @param $status 状态
 * @param string $message 提示信息
 * @param array $data 返回数据
 */
function showMsg($status,$message = '',$data = array()){
    $result = array(
        'status' => $status,
        'message' =>$message,
        'data' =>$data
    );
    exit(json_encode($result));
}

2. 配置 composer.json

"autoload": {
	...
	"files":[
		"app/Helper/functions.php"
	]
}

3. 执行 composer 命令

composer dump-auto 

4. 测试

showMsg(1,'Hello World!');

★ 举一反三,以后的公共函数都可写在 functions.php 中 …

laravel-cors跨域解决方案

1. 安装 laravel-cors
使用 Composer 安装 laravel-cors 包:

composer require fruitcake/laravel-cors

2. 注册中间件
app/Http/Kernel.php 文件中,注册 HandleCors 中间件。

protected $middleware = [
	// ...
	\Fruitcake\Cors\HandleCors::class,
];
protected $middlewareGroups = [
	'api' => [
		\Fruitcake\Cors\HandleCors::class,
		// ...
	],
];
protected $routeMiddleware = [
	'cors' => \Fruitcake\Cors\HandleCors::class,
	// ...
];

3. 配置 CORS
发布配置文件:

php artisan vendor:publish --provider="Fruitcake\Cors\CorsServiceProvider"

编辑 config/cors.php 文件,根据您的需求进行配置。以下是一些常用的配置选项:

'paths' => ['api/*', 'sanctum/csrf-cookie'], // 允许跨域的路径
'allowed_methods' => ['*'], // 允许的 HTTP 方法
'allowed_origins' => ['*'], // 允许的来源
'allowed_origins_patterns' => [], // 允许的来源模式
'allowed_headers' => ['*'], // 允许的请求头
'exposed_headers' => [], // 允许暴露的响应头
'max_age' => 0, // 预检请求的缓存时间
'supports_credentials' => false, // 是否允许发送凭证

4. 路由中使用中间件(可选)
如果您在 routeMiddleware 中注册了中间件,可以在路由中使用它:

Route::middleware('cors')->get('/api/data', function () {
	// ...
});

示例:允许所有来源的跨域请求

// config/cors.php
'allowed_origins' => ['*'],

示例:允许特定来源的跨域请求

// config/cors.php
'allowed_origins' => ['http://localhost:3000'],

示例:允许特定 HTTP 方法的跨域请求

// config/cors.php
'allowed_methods' => ['GET', 'POST', 'OPTIONS'],

示例:允许特定请求头的跨域请求

// config/cors.php
'allowed_headers' => ['Content-Type', 'Authorization'],

注意事项:

save更新失败原因

// $collection = ArticleModel::query()->where('id', 3)->select(['status'])->first(); // 错误写法
$collection = ArticleModel::query()->where('id', 3)->select(['id', 'status'])->first(); // 正确写法, 必须查询出ID否则不能更新status字段
$collection->status = 2;
$collection->save();