首页 > 解决方案 > 如何在创建资源时用 auth 用户填充用户 ID 字段?

问题描述

我确信必须有一种非常简单的方法来做到这一点——每当创建资源的新实例时,我想用经过身份验证的用户 id 填充资源上的 user_id 字段。

在我的资源模型的 store() 方法中,我有:

public function store(Request $request)
{
    $input = $request->all();
    $resource = Resource::create($input);
    $resource->user_id = Auth::user()->id;
    return $resource;

    return 'Resource added.';
}

这通过发布 API 路由起作用,但是每当我通过 Nova 仪表板添加新资源实例时,它都不会添加 Auth 用户 ID。我猜这是因为 Nova 没有使用我设置的资源控制器?

我会很感激建议!

标签: laravelapiauthenticationlaravel-nova

解决方案


假设您有关系方法User::resources(),以下应该有效:

return $request->user()->resources()->create($request->all());

您拥有它的方式不起作用,因为您在将用户与其关联后没有保存资源。


推荐阅读