首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按id或友好URL查询- Laravel/Eloquent

按id或友好URL查询- Laravel/Eloquent
EN

Stack Overflow用户
提问于 2018-09-06 22:12:21
回答 1查看 691关注 0票数 0

我正在和laravel一起开发REST API。

我有一张博客桌

代码语言:javascript
复制
Schema::create('blogs', function (Blueprint $table) {
    $table->increments('id');
    $table->string('title');
    $table->longtext('body');
    $table->string('friendly_url');
});

我已经为show控制器设置了我的路线,它将显示通过id搜索的博客。

路由

代码语言:javascript
复制
Route::get('/{id}', 'BlogController@show');

控制器

代码语言:javascript
复制
public function show($id)
{
    $blog = Blog::find($id);
        if (!$blog) {
            return response()->json([
                'message' => '404 Not Found'
            ], 400);
        }
    return response()->json($blog, 200);
}

因此,通过访问

代码语言:javascript
复制
/api/blog/1

我得到了

代码语言:javascript
复制
{
    "id": 1,
    "title": "title of my blog",
    "body": "conteudo do meu blog",
    "friendly_url": "title-of-my-blog",
    "category_id": 2
}

但是我也想通过友好的URL来查看博客

代码语言:javascript
复制
/api/blog/{friendly-url} OR {id}

/api/blog/title-of-my-blog

并得到相同的结果

我想知道做这件事的最佳实践,有人来帮忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-06 22:21:41

我通常不喜欢使用id或具有相同链接结构的"slug"/"friendly url“的想法,但你就不能这样做:

代码语言:javascript
复制
$blog = Blog::where('id', $id)->orWhere('friendly_url', $id)->first();

我推荐使用友好的url。您拥有该字段是有原因的,尽管它在数据库中应该是唯一的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52206066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档