同步操作将从 abcd/Laravel 基础项目 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
数据库(配置根目录下 .env 文件)
DB_CONNECTION=mysql
// host地址
DB_HOST=127.0.0.1
// 端口号
DB_PORT=3306
// 数据库名
DB_DATABASE=laravel9
// 用户名
DB_USERNAME=root
// 密码
DB_PASSWORD=
只安装了项目最常用的几个,如果有需要可以从下面链接里看一下 下载量最高的 100 个 Laravel 扩展包推荐
代码提示工具
laravel-ide-helper
语言包
caouecs/laravel-lang
开发调试利器(debugbar 在 dev 环境安装)
laravel-debugbar
1、返回成功信息
return $this->success($data);
2、返回失败信息
return $this->fail($codeResponse);
3、抛出异常
$this->throwBusinessException($codeResponse);
4、分页
return $this->successPaginate($data);
1、验证参数是否为ID
$this->verifyId('key');
2、验证参数是否为整数
$this->verifyInteger('key');
3、验证参数是否为字符串
$this->verifyString('key');
4、验证参数是否为布尔值
$this->verifyBoolean('key');
....
有一个 index
方法,我们在获取参数时使用 verifyId
来校验请求的参数
public function index()
{
$id = $this->verifyId('id', null);
}
当我们请求时,因为传入的参数是字符串
http://127.0.0.1:8000/api/user/index?id=xddd
所以返回 The id must be an integer
,提示id必须为整数
如果项目比较小,接口较少,业务逻辑放在 controller 和 model 层就可以。否则就需要创建一个 Service 层来存放一些较复杂些的业务逻辑。
一、在 app
目录下,创建名叫 Services
的文件夹
二、在新创建的 Services
目录下创建基类 BaseService.php
,采用单例模式避免对内存造成浪费,也方便调用
<?php
namespace App\Services;
use App\Helpers\ApiResponse;
class BaseService
{
// 引入api统一返回消息
use ApiResponse;
protected static $instance;
public static function getInstance()
{
if (static::$instance instanceof static){
return self::$instance;
}
static::$instance = new static();
return self::$instance;
}
protected function __construct(){}
protected function __clone(){}
}
三、使用
例如要实现一个获取用户信息的功能
1、在 Service 层创建一个 UserService.php
的文件
<?php
namespace App\Services;
use App\Services\BaseService;
class UserService extends BaseService
{
// 获取用户信息
public function getUserInfo()
{
return ['id' => 1, 'nickname' => '张三', 'age' => 18];
}
}
2、在控制器 UserController
中增加一个 info
方法,并调用服务层中的 getUserInfo() 方法
use App\Services\UserService;
public function info()
{
$user = UserService::getInstance()->getUserInfo();
return $this->success($user);
}
3、返回
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。