更新模型中的记录

时间:2017-11-05 11:26:25

标签: php laravel laravel-5

我在数据库中尝试更新模型。 我有要求提供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为空)

3 个答案:

答案 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());