[Laravel]使用PHP Laravel框架编写restful风格API
使用PHP Laravel框架编写restful风格API准备工作创建laravel项目composer create-project--prefer-distlaravel/laravel myproject数据库准备数据(我的数据在student库的stu表)打开项目,修改项目数据库配置打开根目录下的 .env 文件进行数据库配置项目/.envDB_CONNECTION=mysqlDB_HOS
·
使用PHP Laravel框架编写restful风格API
准备工作
- 创建laravel项目
composer create-project --prefer-dist laravel/laravel myproject
- 数据库准备数据(我的数据在
student
库的stu
表)
- 打开项目,修改项目数据库配置
- 打开根目录下的
.env
文件进行数据库配置
项目/.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=
DB_USERNAME=mysql用户名
DB_PASSWORD=mysql密码
开始编写
- 创建控制器,创建模型,这里以stu为例
打开终端
创建stu模型
php artisan make:model api/stu
创建stu控制器
php artisan make:controller stuController --api
模型的路径
项目/app/api/stu.php
控制器路径
项目/app/Http/Controllers/stuController.php
- 注册路由与设置模型
api路由路径
项目/routes/api.php
添加代码如下
Route::apiResource("stu","stuController");
- 此操作实现注册stu控制器的增删改查api
打开stu.php
模型进行编写
class stu extends Model
{
// 数据表名
protected $table = "stu";
// 主键名 如果是id可以忽略
protected $primaryKey = "id";
// 是否使用`$timestamps`属性,值是`false`,如果不设置为`false`,则默认会操作表中的`create_at`和`updated_at`字段,
// 我们表中一般没有这个字段,所以设置为`false`,表示不要操作这两个字段
public $timestamps = false;
// 允许入库字段
protected $fillable = [];
// 不允许入库字段
protected $guarded = [];
}
- 接下来查看控制器
class stuController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
- 现在方法与api地址的关系如下,可在终端中输入
php artisan route:list
查看
- 现在我们简单进行一些方法修改
需要引入stu模型
<?php
namespace App\Http\Controllers;
use App\api\stu;
use Illuminate\Http\Request;
class stuController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
$data = stu::get();
return response($data);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
$data = $request->all();
return response($data);
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
return "show方法调用,id为".$id;
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
return "update方法调用";
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
return "destroy方法调用,id为".$id;
}
}
- 对各个api进行相应的测试
- 可以看到每个api都能被正常的调用,接下来便可以对每个方法进行自己的改造了
如此以上,restful风格API生成完毕,本章内容便不再赘述Laravel操作数据库的内容(也有可能在下一篇中)
路径方法对应表
路径 | 方法 | 方式 | 通常作用 |
---|---|---|---|
/stu | index | GET | 获取所有数据 |
/stu | store | POST | 增加数据 |
/stu/1 | show | GET | 查看单条数据(id为1) |
/stu/1 | update | PUT | 修改数据(id为1) |
/stu/1 | destroy | DELETE | 删除数据(id为1) |
点赞收藏支持 谢谢
更多推荐
已为社区贡献2条内容
所有评论(0)