Laravel 8 自定义键和作用域
有时,当一个路由定义中隐式绑定多个 Eloquent 模型时,您可能需要限定第二个 Eloquent 模型的作用域,使它是第一个 Eloquent 模型的子模型。例如,考虑这样一种情况,通过 slug 字段为特定用户检索博客文章:
use App\Models\Post;
use App\Models\User;
Route::get('api/users/{user}/posts/{post:slug}', function (User $user, Post $post) {
return $post;
});
当使用自定义键值隐式绑定作为嵌套路由参数时,Laravel 将自动限定查询的范围,通过其父节点使用猜测父节点上关系名称的约定来检索嵌套模型。 在本例中,假定 User
模型有一个名为 posts
的关联 (路由参数名的复数形式),可用于检索 Post
模型。