Laravel 7用户注册时如何同时向两个表插入数据?
How can I insert data in two tables at the same time during user registration in Laravel 7?
我有一张用于注册新用户的注册表。我的用户称为“客户”,所以我在 mysql 数据库中有两个 table(“客户”table 和“用户”table)。我正在使用 Laravel 7。我想在注册期间同时向两个数据库 table 插入客户数据(名字、姓氏、电子邮件 e.t.c)。我创建了两个具有一对一关系的模型。我还创建了一个控制器来注册客户端,但目前正在将数据插入一个 table(客户端 table)。请帮我同时在两个table中插入数据。谢谢
注册控制器:
<?php
namespace App\Http\Controllers\Auth\Client;
use App\Http\Controllers\Controller;
use App\Models\User;
use App\Models\Client;
use Illuminate\Http\Request;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Auth;
class RegisterController extends Controller
{
/*
|--------------------------------------------------------------------------
| Register Controller
|--------------------------------------------------------------------------
|
| This controller handles the registration of new users as well as their
| validation and creation. By default this controller uses a trait to
| provide this functionality without requiring any additional code.
|
*/
use RegistersUsers;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest');
}
// Showing a Registration Form to User
public function create()
{
return view('auth.client.register');
}
// Validating the User
public function store(Request $request)
{
$request->validate([
'first_name' => 'required|string|max:255',
'last_name' => 'required|string|max:255',
'telephone_number' => 'required|digits:10',
'email' => 'required|string|email|max:255|unique:users','regex:/^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,6}$/',
'password' => 'required|string|min:6|confirmed',
'password_confirmation' => 'required',
]);
// Creating the User
$client = Client::create([
'first_name' => $request->first_name,
'last_name' => $request->last_name,
'telephone_number' => $request->telephone_number,
'email' => $request->email,
'password' => Hash::make($request->password),
]);
return redirect('dashboard');
}
}
我的用户模型中的关系
public function client()
{
return $this->hasOne(Client::class,'user_id');
}
我的客户模型中的关系
/**
* @return BelongsTo
*/
public function user(){
return $this->belongsTo(User::class ,'user_id');
}
如果你想插入其他 table 和相同的数据,也许你可以这样做:
$otherName= OtherModel::create([
'first_name' => $request->first_name,
'last_name' => $request->last_name,
'telephone_number' => $request->telephone_number,
'email' => $request->email,
'password' => Hash::make($request->password),
]);
return redirect('dashboard');
我有一张用于注册新用户的注册表。我的用户称为“客户”,所以我在 mysql 数据库中有两个 table(“客户”table 和“用户”table)。我正在使用 Laravel 7。我想在注册期间同时向两个数据库 table 插入客户数据(名字、姓氏、电子邮件 e.t.c)。我创建了两个具有一对一关系的模型。我还创建了一个控制器来注册客户端,但目前正在将数据插入一个 table(客户端 table)。请帮我同时在两个table中插入数据。谢谢
注册控制器:
<?php
namespace App\Http\Controllers\Auth\Client;
use App\Http\Controllers\Controller;
use App\Models\User;
use App\Models\Client;
use Illuminate\Http\Request;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Auth;
class RegisterController extends Controller
{
/*
|--------------------------------------------------------------------------
| Register Controller
|--------------------------------------------------------------------------
|
| This controller handles the registration of new users as well as their
| validation and creation. By default this controller uses a trait to
| provide this functionality without requiring any additional code.
|
*/
use RegistersUsers;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest');
}
// Showing a Registration Form to User
public function create()
{
return view('auth.client.register');
}
// Validating the User
public function store(Request $request)
{
$request->validate([
'first_name' => 'required|string|max:255',
'last_name' => 'required|string|max:255',
'telephone_number' => 'required|digits:10',
'email' => 'required|string|email|max:255|unique:users','regex:/^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,6}$/',
'password' => 'required|string|min:6|confirmed',
'password_confirmation' => 'required',
]);
// Creating the User
$client = Client::create([
'first_name' => $request->first_name,
'last_name' => $request->last_name,
'telephone_number' => $request->telephone_number,
'email' => $request->email,
'password' => Hash::make($request->password),
]);
return redirect('dashboard');
}
}
我的用户模型中的关系
public function client()
{
return $this->hasOne(Client::class,'user_id');
}
我的客户模型中的关系
/**
* @return BelongsTo
*/
public function user(){
return $this->belongsTo(User::class ,'user_id');
}
如果你想插入其他 table 和相同的数据,也许你可以这样做:
$otherName= OtherModel::create([
'first_name' => $request->first_name,
'last_name' => $request->last_name,
'telephone_number' => $request->telephone_number,
'email' => $request->email,
'password' => Hash::make($request->password),
]);
return redirect('dashboard');