laravel - 生成 API 和 laravel 护照
问题描述
我是 Laravel 的新手,请回答我的问题。
我正在使用 Laravel 5.8 开发一个系统,其中包含两个用户级别。
- 用户
- 行政
index
:show
和store
)index
、show
和)store
destroy
我的数据库表:书籍如下:
和用户表:
和管理员表:
第一个问题:
在我的api.php
Route::apiResource('books', 'BookController');
跟随是我想要的路线结构。
# index()
// http://127.0.0.1:8000/api/v1/books/drama -> get all books where type is drama
// http://127.0.0.1:8000/api/v1/books/novel -> get all books where type is novel
// http://127.0.0.1:8000/api/v1/books/magazine -> get all books where type is magazine
如何使用由命令创建的 BookController 来实现这一点:
php artisan make:controller BookController --api
以及如何在路由中添加v1前缀?我不想在 RouteServiceProvider.php 中添加该版本号的前缀。
另一个问题:
如何验证多个用户?管理员和用户都是 api 的消费者。
解决方案
因为我现在正在自己开发一个api,我知道你的一些问题并且已经成功完成了这个任务,所以我试着回答你的问题。
到 URL 中的“v1”前缀:我在我的routes/api.php
文件中使用
Route::prefix('/v1')->group(function () {
// my routes for version 1
}
一个词代表您的用户/管理员内容:我没有将其放入 2 个单独的表中。这个想法是,你有一堆用户,其中只有一些是管理员。那么为什么不用一个admin
标志来标记它们并给用户模型(在你的User.php
)一个方法is_admin
来返回,如果这个标志设置为true
or false
。所以你可以看到,登录用户是否是管理员。
有了这个,你可以随时在你的应用程序中检查这个,auth()->user()->is_admin
看看这是否是管理员。
希望,我可以帮助你一点
现在,你的Books
问题。我会简单地将另一条路线放入我的routes/api.php
喜欢中
Route::get('books/{category}', 'BookController@category')->name('books.category');
并创建一个名为public function category(String $category)
my的新函数BookController
。在此,您可以检查是否$category
是有效的类别名称并处理退货。
推荐阅读
- sql - SQL 查询帮助 - 联接
- c# - 如何使用在第一类中声明的函数,在第二类中使用它?
- python - 删除重复项的过程耗时过长
- codeigniter - Codeigniter 3 博客应用程序:update() 方法删除缩略图
- java - 切换面板 - 卡片布局
- c++ - Gradle with C++:如何更改编译器选项?
- opengl - OpenGL - 如何渲染许多不同的模型?
- java - 使用什么:Excel VS MySql/MongoDB [Java]
- gradle - 导入自定义字体时出现颤振错误
- django - 如何在休息框架中使用 ArrayField 和 ImageField