我是学习Laravel 5的新手。我按照教程操作,我的控制器中有以下代码。我想要的是在我的登录数据库中用ID=10
更新用户名。我按照教程和Laravel文档进行操作,但会发生什么呢?它会插入另一条记录而不是更新现有记录。我的代码出了什么问题?
routes.php文件:
Route::get('/users', "PagesController@login");
login.php(model)
<?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();
}
}
答案 0 :(得分:2)
通过创建新的login
对象意味着您正在创建新记录。只需使用login::find()
加载现有记录。
class PagesController extends Controller
{
public function login()
{
$login = login::find(10);
$login->username ='updated_username';
$login->save();
}
}
答案 1 :(得分:0)
class PagesController extends Controller
{
public function login()
{
$login = (new App\Login)->find(10);
$login->username ='updated_username';
$login->save();
}
}
请记住,您的类名应以大写字母&#34开头;使用App \ Login&#34;而不是&#34;使用App \ login&#34;。您可以选择直接使用&#34; new App \ Login&#34;。
引用该类