【问题标题】:Adding card to Laravel Jetstream / Livewire profile form将卡片添加到 Laravel Jetstream / Livewire 配置文件表单
【发布时间】:2021-06-23 23:01:08
【问题描述】:

我正在尝试将新的配置文件部分添加到默认的 laravel jetstream 配置文件视图。我创建了一个名为 SetContactPreferences 的新 livewire 组件,并通过添加以下内容从 resources/views/profile/show.blade.php 调用它:

@livewire('profile.set-contact-preferences') 

我创建的表单在个人资料中按预期显示为一张新卡片。

但是,我不清楚提交操作应该是什么样子。 The docs say 表单将提交当前经过身份验证的用户以及表单输入,所以我在我的组件中创建了一个方法,例如:

public function setContactPreferences($user, $input) {
    dd($input);
}

我在set-contact-preferences.blade.php 文件的顶部添加了<x-jet-form-section submit="setShowingPreferences">

提交表单会抛出以下错误:

Illuminate\Contracts\Container\BindingResolutionException
Unable to resolve dependency [Parameter #0 [ <required> $user ]] in class App\Http\Livewire\Profile\SetContactPreferences 

【问题讨论】:

    标签: php laravel laravel-livewire jetstream


    【解决方案1】:

    它在 Jetstream 中的工作方式是,当提交 user profile information form 时,该提交由位于 Laravel\Fortify\Http\Controllers\ProfileInformationControllerProfileInformationController 上的 update 方法处理。

    update 方法需要两个参数,一个Request 对象和一个UpdatesUserProfileInformation(这是App\Actions\Fortify\UpdateUserProfileInformation 的一个实例),这两个参数都是从服务容器中注入的。

    Jetstream 使用$request-&gt;user()Request 对象中获取当前用户,然后将其与使用$request-&gt;input() 的任何表单输入一起传递给UpdatesUserProfileInformation

    如果您不关心其他人更新用户配置文件信息(例如系统管理员),您可以在您的方法签名中键入提示 Request 对象,它将自动注入:

    public function setContactPreferences(Request $request)
    {
        // Dump the currently authenticated user
        dd($request->user());
    }
    

    或者,您可以为您的组件提供User,以应对您可能想要更新不是当前经过身份验证的用户的用户信息的情况。

    public User $user;
    
    public function setContactPreferences()
    {
        dd($this->user);
    }
    
    

    然后将User 传递给组件:

    @livewire('profile.set-contact-preferences', ['user' => Auth::user()])
    

    @livewire('profile.set-contact-preferences', ['user' => User::find(1)])
    

    【讨论】:

      猜你喜欢
      • 2021-12-15
      • 1970-01-01
      • 2021-05-06
      • 2021-04-07
      • 2022-07-24
      • 2021-09-18
      • 2021-02-24
      • 2021-06-24
      • 2021-11-25
      相关资源
      最近更新 更多