php - 当您替换数据库中的值时,不会发生保存并给出错误?
问题描述
控制器
public function update(Request $request)
{
$user= User::find($request->id);
$user_role= User_roles::find($request->user_id);
$user->name = $request->name;
$user->surname = $request->surname;
$user->patronymic = $request->patronymic;
$user->number = $request->number;
$user->password = $request->password;
$user->iin = $request->iin;
$user->groupinvalid = $request->groupinvalid;
$user->rank = $request->rank;
$user->save();
if($request->rank =='admin')
{
$user_role = $request->role_id=1;
}else if ($request->rank =='oper')
{
$user_role = $request->role_id=3;
}else if ($request->rank =='user')
{
$user_role=$request->role_id=2;
};
$user_role->save();
return redirect('users');
}
需要当管理员在 ( $user->rank = $request->rank;
) 中更改为之后开始测试时,如果他指出什么意义(管理员、用户、操作员)被记录在表中的变化user_role
取决于role_id
书面排名。Yaeto 已经完成但是当你保存时
(在整数上调用成员函数 save())
模型(User_role.php)
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User_roles extends Model
{
public $timestamps = false;
protected $table = 'user_role';
public function roles()
{
return $this->hasOne('App\Models\Role','id','role_id');
}
}
解决方案
这是代码:
if($request->rank =='admin')
{
$user_role->role_id = 1;
}else if($request->rank =='oper')
{
$user_role->role_id = 3;
}else if ($request->rank =='user')
{
$user_role->role_id = 2;
};
$user_role->save();
推荐阅读
- php - PHP:基本数组切片情况
- hadoop - 无法从远程主机访问 Hue UI
- php - 使用 If 语句更改数组输出
- rx-java - RxJava - 我可以绕过 onSuccess 并且只有 onError 选项吗?
- java - 实施 onClick 子菜单以开始新活动
- ruby-on-rails - Rails - 通过表插入 has_many
- android - Spring for Android:请求授权标头(非基本)
- r - 获取R中两个字符串之间的字符匹配长度
- phpstorm - JetBrains IDEs 代码完成与 . (点)
- java - 如何将 JAVA_OPTS 传递给 docker 容器中的 tomcat?