我在jetstream注册表单中添加了另外两个表Business
和Bank
沿着User
。我在注册过程中一次成功地在所有这三个表中插入了数据。我的 app/Actions/Fortify/CreatedNewUser.php
文件是:
<?php
namespace App\Actions\Fortify;
use App\Models\Team;
use App\Models\User;
use App\Models\Business;
use App\Models\Bank;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Laravel\Fortify\Contracts\CreatesNewUsers;
use Laravel\Jetstream\Jetstream;
class CreateNewUser implements CreatesNewUsers
{
use PasswordValidationRules;
/**
* Create a newly registered user.
*
* @param array $input
* @return \App\Models\User
*/
public function create(array $input){
$user = User::create([
'user_id' => $input['user_id'],
'username' => $input['username'],
'name' => $input['name'],
'lname' => $input['lname'],
'email' => $input['email'],
'phone' => $input['phone'],
'cell' => $input['cell'],
'persnl_add1' => $input['persnl_add1'],
'persnl_add2' => $input['persnl_add2'],
'city' => $input['city'],
'province' => $input['province'],
'country' => $input['country'],
'web' => $input['web'],
'password' => Hash::make($input['password']),
]);
Business::create([
'user_id' => $input['user_id'],
'bsns_name' => $input['bsns_name'],
'bsns_add1' => $input['bsns_add1'],
'bsns_add2' => $input['bsns_add2'],
'bsns_city' => $input['bsns_city'],
'bsns_province' => $input['bsns_province'],
'bsns_country' => $input['bsns_country'],
]);
Bank::create([
'user_id' => $input['user_id'],
'branch_code' => $input['branch_code'],
'bank_name' => $input['bank_name'],
'acc_no' => $input['acc_no'],
'acc_title' => $input['acc_title'],
]);
return $user;
}
}
这里我在所有三个表中插入了数据**,但现在我想将此用户数据放在更新表单中进行更新。我不知道在哪里更新Business
和Bank
表沿着User
表的数据。**
这里是 * 应用程序/操作/Fortify/* UpdateUserProfileInformation.php
<?php
namespace App\Actions\Fortify;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rule;
use Laravel\Fortify\Contracts\UpdatesUserProfileInformation;
use Illuminate\Support\Facades\Hash;
class UpdateUserProfileInformation implements UpdatesUserProfileInformation
{
/**
* Validate and update the given user's profile information.
*
* @param mixed $user
* @param array $input
* @return void
*/
public function update($user, array $input)
{
Validator::make($input, [
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'email', 'max:255', Rule::unique('users')->ignore($user->id)],
'photo' => ['nullable', 'mimes:jpg,jpeg,png', 'max:1024'],
])->validateWithBag('updateProfileInformation');
if (isset($input['photo'])) {
$user->updateProfilePhoto($input['photo']);
}
if ($input['email'] !== $user->email &&
$user instanceof MustVerifyEmail) {
$this->updateVerifiedUser($user, $input);
} else {
$user->forceFill([
'username' => $input['username'],
'name' => $input['name'],
'lname' => $input['lname'],
'email' => $input['email'],
'phone' => $input['phone'],
'cell' => $input['cell'],
'persnl_add1' => $input['persnl_add1'],
'persnl_add2' => $input['persnl_add2'],
'city' => $input['city'],
'province' => $input['province'],
'country' => $input['country'],
'web' => $input['web'],
])->save();
}
}
/**
* Update the given verified user's profile information.
*
* @param mixed $user
* @param array $input
* @return void
*/
protected function updateVerifiedUser($user, array $input)
{
$user->forceFill([
'name' => $input['name'],
'email' => $input['email'],
'email_verified_at' => null,
])->save();
$user->sendEmailVerificationNotification();
}
}
在这里我看不到其他表的更新数据在哪里
2条答案
按热度按时间7gcisfzg1#
你可以这样做:
pn9klfpd2#
在用户模型中
如果要访问另一个Model中的某个字段,请在User模态中创建一个属性,该属性提供您希望该用户使用的数据。
例如:
我想'business'是您与'Business'模型和'User'模型关系
然后在您的“update-profile-information-form.blade.php”中,您可以访问该属性。
将此应用于您需要的每个字段。