《laravel后台管理;laravel admin api》
一、解决方案简述
在构建基于Laravel的后台管理系统时,使用Laravel - Admin是一个非常高效且功能丰富的解决方案。它提供了一套现成的后台管理界面组件和操作逻辑,同时配合API接口开发,可以实现前后端分离或者传统的服务端渲染模式下的后台管理功能。
二、基于Laravel - Admin的传统后台管理构建
1. 安装Laravel - Admin
在已有的Laravel项目中安装Laravel - Admin。可以通过composer来安装:
composer require encore/laravel - admin
然后发布资源文件:
php
php artisan vendor:publish --provider="EncoreAdminAdminServiceProvider"
接着迁移数据库以创建必要的表结构:
php
php artisan migrate
2. 创建管理员用户
在database/seeders
目录下创建一个管理员用户的填充类AdminUserSeeder.php
:
```php
<?php
namespace DatabaseSeeders;
use IlluminateDatabaseSeeder;
use EncoreAdminAuthDatabaseAdministrator;
class AdminUserSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Administrator::create([
'username' => 'admin',
'password' => bcrypt('123456'),
'name' => 'Administrator',
]);
}
}
php
运行填充命令:
php artisan db:seed --class=AdminUserSeeder
```
已经可以登录后台管理系统了,默认用户名为admin,密码为123456。
三、Laravel Admin Api开发
1. 创建Api路由
在routes/api.php
中定义api路由。例如要获取用户列表:
php
Route::get('/users',[AppHttpControllersApiUserController::class,'index']);
2. 编写控制器方法
在app/Http/Controllers/Api/UserController.php
中编写index方法:
```php
<?php
namespace AppHttpControllersApi;
use IlluminateHttpRequest;
use AppHttpControllersController;
use AppModelsUser;
class UserController extends Controller
{
public function index()
{
$users = User::all();
return response()->json(['data'=>$users]);
}
}
```
3. 其他思路
除了直接返回模型数据,还可以对数据进行筛选、分页等处理。比如分页展示用户信息:
php
public function index(Request $request)
{
$page = $request->input('page',1);
$limit = $request->input('limit',10);
$users = User::paginate($limit);
return response()->json(['data'=>$users->items(),'total'=>$users->total()]);
}
也可以结合中间件进行权限验证等操作,确保只有授权用户才能访问相关api接口。