当前位置: 首页 > 知识库问答 >
问题:

如何更新Laravel 4中字段的列?

顾宣
2023-03-14

我试图在一个路由上调用一个AJAX请求,该路由在UserController中调用这个函数updateImpression(),这个函数试图增加MySQL中存储的“users”表中名为“impressions\u cpunt”的计数器列。我试着使用Eloquent只更新一个特定用户的列。

public function updateImpression()
{
    $username = Input::get('username');
    $user = User::where('username', '=', $username)->first();
    $impressions_count = $user->impressions_count + 1;

    // save() method failed to update my database.
    // $user->impressions_count = $impressions_count;
    // $user->save();

    //update() method does not return anything. Any syntax error here?
    //$user->update(array('impressions_count' => $impressions_count));

    DB::table('users')
        ->where('username', $username)
        ->update(array('impressions_count' => $impressions_count));

    $user = User::where('username', '=', $username)->first();

    return $user->impressions_count;
}

我认为save()函数应该首先工作,但是我的数据库没有得到更新并返回原始计数,update()函数甚至没有从函数返回任何值。这只在我使用DB时有效,但我认为最好使用Eloquent,因为这是Laravel。我有没有遗漏什么或者语法有什么问题?我知道应该使用increments()数据类型,但请允许我在更改任何内容之前解决此问题。

更新:这是我的数据库查询显示在Debugbar当我使用保存()html" target="_blank">方法:

select * from 'users' where 'username'= <test> limit 1
select count(*) as aggregate from 'users' where 'username'= <test>
select count(*) as aggregate from 'users' where 'email'= <test@example.org>

共有2个答案

巫马昆杰
2023-03-14

在Laravel 5.2中,您可以使用以下雄辩的生成器更新特定列:

public function update(Request $request, $id) {
    $user = User::where('id', $id)->update(['name', $request->name]);

    return redirect()->back()->with('status', trans('User has been updated successfully.'))
}
岳枫
2023-03-14

用户对象(应该是雄辩的孩子)像任何其他实体一样,将在更改后存储其状态,如果您的保存()调用成功。因此,无需显式更新记录。在你的情况下,我会选择这样的东西:

public function updateImpression()
{
    $username = Input::get('username');
    $user = User::where('username', '=', $username)->first();
    $user->impressions_count += 1;
    $user->save();

    return $user->impressions_count;
}
 类似资料:
  • 问题内容: 这是一个例子: 如果我有这些课程 在数据库中,我有一位作者名为“ George”,另一位作者名为“ Georfe”。最后一个是错误。因此,我想要的是每本以“ Georfe”为作者之一的书都被作者“ George”代替。 在SQL中确实很容易做到。如果id为“ George” = 3,id为“ Georfe” = 7,并且关系表名称为“ author_book”: 可以使用Django

  • 问题内容: ElasticSearch文档尚不清楚如何执行此操作。 我索引了一些推文,其中一个字段created_at被索引为字符串而不是日期。我找不到如何通过curl调用对该更改重新索引。如果重新编制索引是一个复杂的过程,那么我宁愿只是删除其中的内容并重新开始。但是,我也找不到如何指定字段类型! 任何帮助是极大的赞赏。 问题答案: 您需要使用Put Mapping AP I 定义映射。 日期可以

  • 问题内容: 我在一个表中有一个XML列,如下所示: 我想像这样更新此字段: 我想通过SQL Server中的一个函数来做。 谢谢! 问题答案: 正如Mikael所述,您需要描述更新背后的逻辑。但是对于上面的预期输出,以下应该起作用:

  • 我正在使用Solr搜索我的网页数据语料库。我的solr-indexer将创建几个字段和相应的值。然而,这些字段中的一些我想更经常地更新,例如在该页面上的点击数。这些字段不需要是可索引的,我也不需要对这些字段值执行搜索。然而,我确实想要获取它们,并经常更新它们。我是一个solr新手,所以一个更有描述性的答案和一些运行示例/代码可能会对我有更好的帮助。

  • 带有我的适配器的代码段是:

  • 在对模型及其相关模型执行更新操作后,我需要保存更新的字段数。 假设我有一个用户配置文件编辑表单。在该表单上,我允许用户更新其firtname,lastname,密码。 用户模型有电子邮件和密码字段,其他字段也很少。 UserProfile模型也有名、姓和其他字段。 User模型与具有hasOne关联的UserProfile模型相关联。 有很多,也有很多联系。 如果用户更新了名字和密码,我需要向用户