Php 注册->;将数据发送到两个表
在注册时,我将一个用户注册到两个表-用户和公司。正如您在下面的代码中所看到的,Company.php和User.php有一种关系 在AuthController.php中,我使用“Php 注册->;将数据发送到两个表,php,laravel,laravel-5.1,laravel-5.2,Php,Laravel,Laravel 5.1,Laravel 5.2,在注册时,我将一个用户注册到两个表-用户和公司。正如您在下面的代码中所看到的,Company.php和User.php有一种关系 在AuthController.php中,我使用“'user\u id'=>$user['id']”,将用户表中新创建行的id传递给公司表。 我知道它有点错误,但它是有效的,我只是想知道如何以更智能的方式使用外键同时创建两行。 我只是觉得我没有很好地利用这种关系 company.php <?php namespace App; use Illuminate\Da
'user\u id'=>$user['id']”,
将用户表中新创建行的id传递给公司表。
我知道它有点错误,但它是有效的,我只是想知道如何以更智能的方式使用外键同时创建两行。
我只是觉得我没有很好地利用这种关系
company.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Company extends Model {
protected $fillable = [
'ICO', 'user_id',
];
public function user() {
return $this->belongsTo('App\User');
}
}
<?php
namespace App;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable {
protected $fillable = [
'firstname', 'middlename', 'lastname', 'email', 'password', 'usertype',
];
protected $hidden = [
'password', 'remember_token',
];
public function company() {
return $this->hasMany('App\Company');
}
}
主控制器中的存储功能应类似于以下内容:
public function store(Request $request) {
$user = new User;
$user->firstname = $request->get('firstname');
$user->lastname = $request->get('lastname');
$user->middlename = $request->get('middlename');
$user->usertype = $request->get('usertype');
$user->email = $request->get('email');
$user->password = bcrypt($request->get('password'));
$user->save();
$company = new Company;
$company->ICO = $request->get('ICO');
$company->user_id = Auth::id();
$company->save();
$user->company()->save($company);
return redirect()->back();
}
我没有测试这段代码,但是这会让您了解如何在当前的机型上以更智能的方式使用它。希望这会有所帮助。干杯。我需要编写一个全新的存储函数还是以同样的方式编辑我的创建方法?您必须在主控制器的存储方法中添加这段代码,如果有,请删除来自AuthController.php@miiisapiisano的代码我没有,我需要一个吗?,->你真的确定吗?
public function store(Request $request) {
$user = new User;
$user->firstname = $request->get('firstname');
$user->lastname = $request->get('lastname');
$user->middlename = $request->get('middlename');
$user->usertype = $request->get('usertype');
$user->email = $request->get('email');
$user->password = bcrypt($request->get('password'));
$user->save();
$company = new Company;
$company->ICO = $request->get('ICO');
$company->user_id = Auth::id();
$company->save();
$user->company()->save($company);
return redirect()->back();
}