问题是,您需要同时注册用户,并使用其数据表单输入另一个表,并分配ID。
我试过了
$data = Request::all();
$user = new App\User();
$user->username = $data['name'];
$user->email = $data['email'];
$user->password = bcrypt($data['password']);
$user->save();如何立即获得新的用户ID?
记录其他数据,如
$question = new App\Question();
$question->name_q = $data['name_q'];
$question->body_q = $data['body_q'];
$question->user_id = ?发布于 2015-06-25 10:36:14
应该为此定义关系,以便在不创建两个不同表的对象的情况下轻松插入数据。让我们先看看你的情况,然后我将告诉你如何做更好的方法。
$data = Request::all();
$user = new App\User();
$user->username = $data['name'];
$user->email = $data['email'];
$user->password = bcrypt($data['password']);
$user->save();
$question = new App\Question();
$question->name_q = $data['name_q'];
$question->body_q = $data['body_q'];
$question->user_id = $user->id;
$question->save();我们就完了。但是在这种情况下,您必须创建两个不同表的对象,并编写到现在为止还好的所有内容,但是当您必须一次将数据插入到多个表中时会发生什么。让我们看看:
首先定义您已经拥有的关系,让我们看看我们在模型中应该拥有什么:
//User model should have a questions function
public function questions()
{
return $this->hasMany('App\Question');
}
//Question model should have a user model
public function user()
{
return $this->belongsTo('App\User');
}现在我们要做的是
$user = new App\User();
$user->username = $data['name'];
$user->email = $data['email'];
$user->password = bcrypt($data['password']);
$user->save();
$user->questions()->create([
'field' => $somevariable,
'field' => $someothervariable
]);
//here questions is the function name in User modelhttps://stackoverflow.com/questions/31047657
复制相似问题