我需要注册一个新用户并将数据分别存储在两个表中,Users 表将保存经典的 id/name/email/password 信息,而 doctor 表将保存与新注册用户相关的不同信息,例如性别,年龄,user_pic 等。我还需要编辑用户信息并将值保存在两个表中。我该如何实现。谢谢。 我的路由文件是
Route::group([
'middleware' => 'auth'
], function() {
Route::get('/home', [
'as' => 'admin',
'uses' => 'AdminController@index'
]);
Route::get('/profile', array('as' =>'profile' ,'uses' => 'ProfileController@index'));
// Route::get('/profile/{profile_id}',[
// 'as' => 'profile',
// 'uses' => 'ProfileController@index'
// ]);
Route::get('/mail',[
'as' => 'mail',
'uses' => 'MailController@index'
]);
});
我的医生模型是
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Doctor extends Model
{
protected $fillable = [
'name',
'division_id',
'district_id',
];
public function district()
{
return $this->belongsto('App\District');
}
public function division()
{
return $this->belongsto('App\Division');
}
}
最佳答案
创建一个表单并将 POST 方法发送到此路由:user/save
路由.php
Route::post('user/save', 'UserController@store')->name('addUser');
使用 artisan 创建一个 Controller
php artisan make:comtroller UserController
用户 Controller .php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use DB;
class UserController extends Controller
{
public function store(Request $request)
{
// validate
$this->validate($request, [
'name' = 'required',
'email' = 'required|email',
'gender' = 'required',
'age' = 'required'
]);
// save users table
$user = new App\User;
$user->name = $request->input('name');
$user->email = $request->input('email');
$user->save();
// save doctor table
DB::table('doctor')
->insert(
'id' => $user->id,
'gender' => $request->input('gender'),
'age' => $request->input('age')
);
// set a flush message and redirect()->back();
return TRUE;
}
}
关于php - laravel 5.1同时注册、更新用户信息和发送数据到两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38909610/