你好,我在注册一个新用户时出错了。我有两个数据库连接:第一个(默认) oracle用于get数据,第二个mysql用于用户登录、注册。
因此,我在database.php中设置了默认的oracle (因此不必每次都使用connection()方法)。
在模型User.php中,我放置了这一行代码,所以登录指向mysql,我可以登录
protected $connection = 'mysql';在我尝试注册另一个用户之前,一切都很好--我得到了一个错误,因为注册指向默认的oracle。我可以通过再次将默认值切换到mysql来避免这个问题,但这不是我所需要的方式。
我还错过了什么?如何将注册指向mysql db?
在database.php 'default' => env('DB_CONNECTION_ORA', 'oracle'),中
我试图在Schema用户创建中添加连接(“mysql”),但它仍然指向默认设置。
RegisterController.php
class RegisterController extends Controller{
Register Controller
use RegistersUsers;
protected $redirectTo = RouteServiceProvider::HOME;
protected $connection = 'mysql';
public function __construct()
{
$this->middleware('guest');
}
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
{
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return \App\Models\User
*/
protected function create(array $data)
{
return User::connection('mysql')->create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
}}
发布于 2022-07-06 09:27:36
我认为你在使用CREATE方法。试试这个,也许对你有用:
$user = new User;
$user->setConnection('your-another-db');
$user->name = $request->name;
...
...
...
$user->save();https://stackoverflow.com/questions/72880745
复制相似问题