【问题标题】:Access ID in Form Request when using resource route with Laravel在 Laravel 中使用资源路由时表单请求中的访问 ID
【发布时间】:2018-07-12 09:57:16
【问题描述】:

我正在开发一个多租户应用程序,需要创建一些特定于团队 (Laravel Spark) 的 slug 验证。

我的路由是为 API 端点设置的:

Route::prefix('projects/{teamId}')->group(function () {

    Route::resource('posts', 'API\PostController');

});

使用 Axios,我将发布到以下 URL:

/projects/1/posts/5

我正在传递帖子信息,我需要确保每个团队都是独一无二的。

在我的表单请求中,我得到了路由参数:

public function rules()
{
    $teamId = $this->route('teamId');
    $postId = $this->route('id');
}

问题是,我可以获取团队 ID 没有问题(退出测试),但我无法获取资源的 ID...任何想法如何做到这一点?

我最后的选择是从 post 参数中获取它...

【问题讨论】:

    标签: php laravel-5 laravel-routing


    【解决方案1】:

    使用请求助手访问路由,如:

    // it may be plural posts
    request()->route()->parameter('post')
    

    【讨论】:

    • 太棒了,Laravel 的另一个“魔法”去复数化资源名称。
    • 你会经常遇到 Laravel/Eloquent 命名约定。一旦你习惯了它,虽然我发现它非常直观。
    • 注意 'post' 是定义的资源的名称。例如Route::resource('post', 'PostController')
    猜你喜欢
    • 1970-01-01
    • 2018-07-25
    • 2016-09-17
    • 2015-07-15
    • 2014-10-23
    • 1970-01-01
    • 2017-08-22
    • 2019-12-16
    • 2015-08-11
    相关资源
    最近更新 更多