【问题标题】:How to update a record in Laravel Eloquent?如何更新 Laravel Eloquent 中的记录?
【发布时间】:2015-12-05 02:05:45
【问题描述】:

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

Routes.php:

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();
        }
    }

【问题讨论】:

  • var_dump($login);$login::find(10);之后的结果是什么?
  • 结果显示ID号为10的数据
  • 在 Tinker 中尝试同样的事情,它有利于调试只需运行 php artisan tinker 然后输入代码并在其中查看结果
  • 现在可以使用了。我只是配置我的数据库,ID 字段被更改为小写字母 id,它可以工作。非常感谢大家!

标签: php eloquent laravel-5.1


【解决方案1】:
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”直接引用该类。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 感谢您的评论。我试过但没有任何反应。但返回 $login = login::find(10);显示结果。它只是没有更新。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-09
    • 2019-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    相关资源
    最近更新 更多