如何在Laravel Eloquent中更新记录


How to update a record in Laravel Eloquent?

我是学习Laravel 5的新手。我正在学习一个教程,我的控制器中有以下代码。我想要的是在我的登录数据库中用ID=10更新用户名。我遵循了教程和Laravel文档,但实际情况是它插入了另一个记录,而不是更新现有记录。我的代码出了什么问题?

Routes.hp:

Route::get('/users', "PagesController@login");

login.php(模型(

<?php
namespace App;
use Illuminate'Database'Eloquent'Model;
class login extends Model
{
    public $timestamps = false;
    protected $table = 'login';
    protected $fillable = [
        'username',
        'password'
    ];    
}

PagesController.php

<?php
    namespace App'Http'Controllers;
    use Illuminate'Http'Request;
    use App'login; //added
    use App'Http'Requests;
    use App'Http'Controllers'Controller;
    class PagesController extends Controller
    {
       public function login()
        {
          $login = new login;
          $login::find(10);
          $login->username ='updated_username';
          $login->save();
        }
    }

创建新的login对象意味着您正在创建新的记录。只需使用login::find()即可加载现有记录。

class PagesController extends Controller
{
    public function login()
    {
      $login = login::find(10);
      $login->username ='updated_username';
      $login->save();
    }
}
class PagesController extends Controller
    {
       public function login()
        {
          $login = (new App'Login)->find(10);
          $login->username ='updated_username';
          $login->save();
        }
    }

记住,你的类名应该以大写字母"use App''Login"开头,而不是"use App''Login"。您可以选择使用"new App''Login"直接引用类。