1
我在想如何在我的表格中保存用戶選擇的列表用戶?如果用戶選擇第一個選項,則值將被插入到我的role_id
中,值爲1,依此類推。如何使用一對多關係在Laravel中保存選定列表?
<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,'[email protected]','francis')
我有一個表角色具有一對多的關係與用戶表。
角色表:我已經在這裏插入一個值。
用戶(型號)
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');
}
}
控制器:
我還沒有這裏的任何想法我怎麼能插入或保存選定的列表。任何幫助將不勝感激!
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();
}
爲什麼'$ user-> role_id = $ role'不適合你?我想你正在推翻這種關係。 – Devon
@Devon我試過,但它說。完整性約束違規:1452無法添加或更新子行:外鍵約束失敗('onlinesystem'.'users',CONSTRAINT'users_role_id_foreign' FOREIGN KEY('role_id')REFERENCES'roles'('id') – Francisunoxx
因爲你的表單值是'role1'而不是'1'..要麼刪除字符,要麼更改值 – Devon