雄辩的更新和限制 [英] Eloquent update and limit

查看:103
本文介绍了雄辩的更新和限制的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不知道如何在laravel雄辩的orm中同时使用更新和限制方法。

I could not figure out how can i use both update and limit methods in laravel eloquent orm.

$affectedRows = Promo::where('used','=',0)
    ->update(array('user_id' => Auth::user()->id))
    ->limit(1); // Call to a member function limit() on a non-object
    //->take(1); // Call to a member function take() on a non-object

上调用成员函数take()方法。

I tried both limit and take methods.

我只想更新一个结果。

I want to do only one result will be update.

但是我认为我不能使用限制或采取更新方法。

But i think, i can not use limit or take methods on update.

有什么方法可以通过雄辩只更新一行?

Is there any way to update only one row via eloquent?

添加:

雄辩的ORM

$affectedRows = Promo::where('user_id','=',DB::raw('null'))->take(1)
        ->update(
            array(
                'user_id'       => Auth::user()->id,
                'created_ip'    =>Request::getClientIp(),
                'created_at'    => new DateTime,
                'updated_at'    => new DateTime
            )
        );

查询生成器

$affectedRows = DB::table('promos')->whereNull('user_id')
    ->take(1)
    ->update(array(
        'user_id'       => Auth::user()->id,
        'created_ip'    =>Request::getClientIp(),
        'created_at'    => new DateTime,
        'updated_at'    => new DateTime
    ));

这两个代码未向查询添加限制参数

These two codes did not add limit param to the query

输出:

update `promos` set `user_id` = '1', `created_ip` = '127.0.0.1', `created_at` = '2013-06-04 14:09:53', `updated_at` = '2013-06-04 14:09:53' where `user_id` = null


推荐答案

我使用了原始查询。雄辩的和查询生成器上的更新和删除查询没有方法的限制/限制。使用

I used raw query. There is no method limit/take for update and delete queries on both eloquent and query builder. Use

DB::update(DB::raw("UPDATE query"));

像这样。

这篇关于雄辩的更新和限制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆