php - laravel 5.1同时注册、更新用户信息和发送数据到两个表

标签 php mysql laravel routes laravel-5.1

我需要注册一个新用户并将数据分别存储在两个表中,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/

相关文章:

mysql - 如何在流利的 NHibernate 中设置编码?

php - 未定义索引

javascript - Vue 组件和 AJAX 加载 HTML 内容

php - 为什么在 Laravel 中对 Request 对象和 request() 助手使用依赖注入(inject)?

javascript - 页面未在顶部加载

php - 使用 php 和 mysql 插入 xml

php - MySql 插入二进制数据到数据库没有错误

php - 如何避免以明文形式存储我需要访问的用户密码?

php - 打印超出数组第一行的内容

php - Laravel Composer 更新更改的文件