阅读(4321) (6)

Laravel 8 自定义键和作用域

2021-06-23 11:57:11 更新

有时,当一个路由定义中隐式绑定多个 Eloquent 模型时,您可能需要限定第二个 Eloquent 模型的作用域,使它是第一个 Eloquent 模型的子模型。例如,考虑这样一种情况,通过 slug 字段为特定用户检索博客文章:

use AppModelsPost;
use AppModelsUser;

Route::get('api/users/{user}/posts/{post:slug}', function (User $user, Post $post) {
    return $post;
});

当使用自定义键值隐式绑定作为嵌套路由参数时,Laravel 将自动限定查询的范围,通过其父节点使用猜测父节点上关系名称的约定来检索嵌套模型。 在本例中,假定 User 模型有一个名为 posts 的关联 (路由参数名的复数形式),可用于检索 Post 模型。