我在数据库中尝试更新模型。 我有要求提供naw值和值。
' old_log' - 查找数据库中的行的旧值。
public function UserChange2(Request $request){
dump($request);
$data=$request->all();
$log = $request->input('old_log');
dump($log);
$user=userModel::select(['fam','im','ot','phone','log','pass'])->where('log',$log)->first();
$temp=$request->input('fam');
$user->fam=$temp;
$temp=$request->input('im');
$user->im=$temp;
$temp=$request->input('ot');
$user->ot=$temp;
$temp=$request->input('phone');
$user->phone=$temp;
$temp=$request->input('log2');
$user->log=$temp;
$temp=$request->input('pass');
$user->pass=$temp;
dump($user);
$user->save;
}
但表格中的记录未更新。
型号:
class userModel extends Model
{
public $timestamps = false;
protected $fillable=['fam','im','ot','phone','log','pass','reg','token','date','position'];
}
现在:
dump($request);
$data=$request->all();
$log = $request->input('old_log');
dump($log);
$user=userModel::select(['fam','im','ot','phone','log','pass'])->where('log',$log)->first();
$user->fill($request->all())->save();
$user->save;
错误:
未找到列:1054未知列' id'在' where子句' (SQL:更新
user_models
设置fam
= y,phone
= gggg,pass
= tttyyyyyyyy其中id
为空)
答案 0 :(得分:1)
您的userModel
扩展Model
,这是一个Eloquent模型,默认情况下,相关表格中有一个名为id
的主键。
错误
未找到列:1054'where子句'中的未知列'id'
表示列id
不存在。
检查您的表格定义。这是在Laravel项目之外创建的数据库中的表吗?
如果没有,请检查数据库迁移是否定义了主键id
。阅读有关数据库迁移的here。
如果您已经使用了主键而不是id
,那么您可以告诉Eloquent:
protected $primaryKey = 'your_primary_key';
请参阅here。
答案 1 :(得分:0)
您的模型中可能没有完成填充。 转到应为空白的模型并添加可以完成的字段:
示例:
protected $fillable = [
'phone', 'log2', 'pass',
];
您可以在Laravel手册中找到: https://laravel.com/docs/5.5/eloquent#mass-assignment
答案 2 :(得分:0)
从您的口才中删除选择。试试这个..
$user=userModel::where('log',$log)->first();
$user::create($request->all());
修改
$user=userModel::where('log',$log)->first();
$request->request->add(['log' => $request->log2]);
$user::create($request->all());