从 select 获取值并将 id 而不是字符串插入数据库 - PHP MVC
Get value from a select and insert id insetad of string into database - PHP MVC
你好,我有一个我无法解决的问题,我正在填写注册表,用户提供用户名、电子邮件密码,并且必须 select 来自 select 字段的值,一次用户注册而不是将选项值作为字符串发送,它应该发送 id 但我不知道该怎么做。
这是 RegisterController 上的注册操作(在 dd 上,值作为字符串传递)
public function reg(){
$email=$this->request->post('email');
$username=$this->request->post('username');
$password=$this->request->post('password');
$password2=$this->request->post('password2');
$role = $this->request->post('role');
if(isset($email) && !empty($email)
&& isset($username) && !empty($username)
&& isset($password) && !empty($password)
&& isset($password2) && !empty($password2)
&& isset($role) && !empty($role)){
if($password == $password2){
$pass=password_hash($password,PASSWORD_BCRYPT,['cost'=>4]);
try {
$data=[$username,$email,$pass,$role];
dd($data);
Registry::get('database')->insert($data);
Controller::redirectTo('login');
} catch (\PDOException $e) {
return false;
}
} else {
Controller::redirectTo('index');
}
}
}
这是注册视图(试图在值字段中获取每个角色的 ID,但当我这样做时它停止在视图上显示选项)
<label class="text-white ml-4 mr-4" for="role">Role:</label>
<select class="my-8 rounded-lg bg-indigo-500 border cursor-pointer text-white p-2" name="role" id="role">
<?php foreach($roles as $role):?>
<option value="<?php echo $role->id;?>" class="m-4"><?php echo $role->role;?></option>
<?php endforeach; ?>
</select><br>
如果有人需要另一个文件,如 QueryBuilder(以查看插入)或任何其他文件,我会在需要时提供。
您可以尝试将值强制转换为整数,如下所示:
$role = intval($this->request->post('role'));
你好,我有一个我无法解决的问题,我正在填写注册表,用户提供用户名、电子邮件密码,并且必须 select 来自 select 字段的值,一次用户注册而不是将选项值作为字符串发送,它应该发送 id 但我不知道该怎么做。
这是 RegisterController 上的注册操作(在 dd 上,值作为字符串传递)
public function reg(){
$email=$this->request->post('email');
$username=$this->request->post('username');
$password=$this->request->post('password');
$password2=$this->request->post('password2');
$role = $this->request->post('role');
if(isset($email) && !empty($email)
&& isset($username) && !empty($username)
&& isset($password) && !empty($password)
&& isset($password2) && !empty($password2)
&& isset($role) && !empty($role)){
if($password == $password2){
$pass=password_hash($password,PASSWORD_BCRYPT,['cost'=>4]);
try {
$data=[$username,$email,$pass,$role];
dd($data);
Registry::get('database')->insert($data);
Controller::redirectTo('login');
} catch (\PDOException $e) {
return false;
}
} else {
Controller::redirectTo('index');
}
}
}
这是注册视图(试图在值字段中获取每个角色的 ID,但当我这样做时它停止在视图上显示选项)
<label class="text-white ml-4 mr-4" for="role">Role:</label>
<select class="my-8 rounded-lg bg-indigo-500 border cursor-pointer text-white p-2" name="role" id="role">
<?php foreach($roles as $role):?>
<option value="<?php echo $role->id;?>" class="m-4"><?php echo $role->role;?></option>
<?php endforeach; ?>
</select><br>
如果有人需要另一个文件,如 QueryBuilder(以查看插入)或任何其他文件,我会在需要时提供。
您可以尝试将值强制转换为整数,如下所示:
$role = intval($this->request->post('role'));