laravel привязывает регистрационную форму к полю базы данных

#laravel

#laravel

Вопрос:

Я использую команды в laravel и хочу добавить поле названия компании в свою регистрационную форму вместо того, чтобы использовать стандарт:

 'name' => explode(' ', $user->name, 2)[0]."'s Team",
 

Я все еще хочу сохранить поле с именем name, но использовать данные полей ввода, я попытался изменить метод на:

 protected function createTeam(User $user)
    {
        $user->ownedTeams()->save(Team::forceCreate([
            'user_id' => $user->id,
            'name' => $user['company_name'],
            'personal_team' => true,
        ]));
    }
 

но это работает не так, как предполагалось. Мой register.blade.php является:

    <div>
   <x-jet-label value="{{ __('Company Name') }}" />
   <x-jet-input class="block mt-1 w-full" type="text" name="company_name" :value="old('company_name')"  autofocus autocomplete="company_name" />
   </div>
 

моя миграция не изменилась, поскольку я хочу принудительно ввести имя через свою форму, а не генерировать его на основе пользовательского ввода name.

введите описание изображения здесь

Полный метод createNewUser:

 public function create(array $input)
    {
        Validator::make($input, [
            'name' => ['required', 'string', 'max:255'],
            'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
            'password' => $this->passwordRules(),
        ])->validate();

        return DB::transaction(function () use ($input) {
            return tap(User::create([
                'name' => $input['name'],
                'email' => $input['email'],
                'password' => Hash::make($input['password']),
            ]), function (User $user) {
                $this->createTeam($user);
            });
        });
    }

    /**
     * Create a personal team for the user.
     *
     * @param  AppModelsUser  $user
     * @return void
     */
    protected function createTeam(User $user)
    {
        $user->ownedTeams()->save(Team::forceCreate([
            'user_id' => $user->id,
            'name' => $user['company_name'],
            'personal_team' => true,
        ]));
    }
}
 

Комментарии:

1. насколько я понимаю, вы просто хотите добавить новый столбец с названием название компании, верно?

2. @NurbekBoymurodov Я имею в виду, что когда вы создаете пользователя в livewire teams, по умолчанию название команды выполняется с помощью ‘name’ => explode (‘ ‘, $user-> name, 2) [0]. «Команда», но я хочу использовать форму и иметь людейзаполните название своей компании.

3. хорошо, просто вам нужно отправить переменную $input с $user, это будет похоже на эту функцию (User $user, $input) { $this->createTeam($user); }); и ваша функция будет защищена функцией createTeam(User $user, $input) теперь вы можете использовать $введите[‘имя_компании’];