gpt4 book ai didi

php - 如何使用一对多关系在 Laravel 中保存选定列表?

转载 作者:行者123 更新时间:2023-11-30 22:16:02 26 4
gpt4 key购买 nike

我在想如何将用户选择的列表保存到我的表 users 中?如果用户选择第一个选项,值将插入到我的 role_id 中,值为 1,依此类推。

<div class = "form-group {{ $errors->has('role') ? ' has-error' : '' }}">

<label for = "role" class = "control-label">Role</label>

<select class = "form-control" name = "role">

<option selected disabled>Please select role</option>
<option value = "role1">Supplies Officer</option>
<option value = "role2">Admin Officer</option>
<option value = "role3">Attorney</option>
<option value = "role4">Chairman</option>

</select>

@if ($errors->has('role'))
<span class = "help-block">{{ $errors->first('role') }}</span>
@endif

示例 SQL:

INSERT INTO `users`(`role_id`, `email`, `username`) VALUES (1,'francis@gmail.com','francis')

我有一个表 rolesusers 表有一对多的关系。

enter image description here

角色表:我已经在这里插入了一个值。

roles Table

用户(模型)

class User extends Model implements AuthenticatableContract
{
use Authenticatable;

protected $table = 'users';

protected $fillable = [
'username',
'email',
'password',
'role_id',
];

public function role()
{
return $this->belongsTo('Role');
}
}

角色(模型):

class Role extends Model
{
protected $table = 'roles';

public function user()
{
return $this->hasMany('User');
}
}

Controller :

我仍然不知道如何插入或保存所选列表。任何帮助将不胜感激!

public function postRegister(Request $request)
{
$this->validate($request, [
//This will be unique in users table
'email' => 'required|unique:users|email|max:255',
'username' => 'required|unique:users|alpha|max:20',
'password' => 'required|min:6',
'role' => 'required',
]);

$email = $request['email'];
$username = $request['username'];
$password = bcrypt($request['password']);
$role = $request['role'];

$user = new User();
$user->email = $email; //Accessing properties of Model
$user->username = $username;
$user->password = $password;


$user->save();

}

最佳答案

您将您的 role_id 传递给了 User 对象。

$user->role_id = 1;
$user->save();

现在您的角色已分配给您的用户。您可以检查您的 SQL 数据库或在 $user 变量上创建一个 dd()。

dd($user);

你可以用eloquent赋值,这是一个更好的方法。

$role = \Role::findOrFail($request['role_id']);
$role->user()->assign($user)->push(); // This ligne assign the id of the Role Model into the User Model automaticly.

在这种情况下,角色模型必须在用户模型上具有 belongsTo 关系。

关于php - 如何使用一对多关系在 Laravel 中保存选定列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38249820/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com