如何在 Laravel Eloquent 中更新记录?

Nix*_*x27 3 php eloquent laravel-5.1

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

路线.php:

Route::get('/users', "PagesController@login");
Run Code Online (Sandbox Code Playgroud)

login.php(模型)

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class login extends Model
{
    public $timestamps = false;
    protected $table = 'login';

    protected $fillable = [
        'username',
        'password'
    ];    
}
Run Code Online (Sandbox Code Playgroud)

页面控制器.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();
        }
    }
Run Code Online (Sandbox Code Playgroud)

小智 5

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

class PagesController extends Controller
{
    public function login()
    {
      $login = login::find(10);
      $login->username ='updated_username';
      $login->save();
    }
}
Run Code Online (Sandbox Code Playgroud)