草庐IT

eloquent

全部标签

php - 在 Eloquent 模型事件中获取先前的属性值

有没有办法在其saving或updating事件中查看模型属性的旧值/先前值?例如。是否可能出现以下情况:User::updating(function($user){if($user->username!=$user->old->username)doSomething();}); 最佳答案 好吧,我偶然发现了这个,因为它目前不在文档中......有一个getOriginal()方法可用,它返回原始属性值的数组:User::updating(function($user){if($user->username!=$user->ge

php - 如何合并两个 Eloquent 集合?

我有一个问题表和一个标签表。我想从给定问题的标签中获取所有问题。因此,例如,我可能会将标签“旅行”、“火车”和“文化”附加到给定问题上。我希望能够获取这三个标签的所有问题。看起来棘手的是问题和标签关系是在Eloquent中定义为belongsToMany的多对多关系。我想过尝试合并问题集合如下:foreach($question->tagsas$tag){if(!isset($related)){$related=$tag->questions;}else{$related->merge($tag->questions);}}但它似乎不起作用。似乎没有合并任何东西。我是否正确地尝试了这

php - Laravel Eloquent 按关系排序

我有3个模型用户channel回复模型关系user拥有belongsToMany('App\Channel');channel有hasMany('App\Reply','channel_id','id')->oldest();假设我有2个channel-channel1-channel2channel-2的回复比channel-1最新现在,我想通过用户channel的当前回复来订购用户的channel。就像一些聊天应用程序一样。我怎样才能像这样订购用户的channel?channel2channel1我已经尝试了一些代码。但什么也没发生//UserModelpublicfunction

php - MySQL 在 Eloquent 中按字段排序

当我想在MySQL查询中定义自定义排序顺序时,我可以这样做:ORDERBYFIELD(language,'USD','EUR','JPN')EloquentORM版本是什么?更新:这是解决方案,它也适用于在各个领域订购时:$events=Event::with('type','location')->orderBy('event_type_id')->orderByRaw("FIELD(status,'good','bad','hidden','active','cancelled')")->orderBy('date'); 最佳答案

mysql - 通过 Eloquent 在 laravel 中找到具有相同值的两列?

我正在从事一个项目,其中有一个表市场,其中有一个buyer_id列和一个seller_id列。当卖家将某物转换市场时,seller_id和buyer_id相同,这意味着该产品正在出售。销售后,buyer_id更改为购买产品的人。现在在我的应用程序中显示所有待售产品的地方我正在通过Eloquent进行此查询:$market_records=Market::where('seller_id','!=',Auth::user()->id)->where('seller_id','=','buyer_id')->get();我只想要出售的产品不是由登录的同一用户生产的,并且我只想拥有selle

php - 合并和排序两个 Eloquent 集合?

我有两个集合,我想将它合并到一个变量中(当然,按一个列排序-created_at)。我该怎么做?我的Controller看起来:$replies=Ticket::with('replies','replies.user')->find($id);$logs=DB::table('logs_ticket')->join('users','users.id','=','mod_id')->where('ticket_id','=',$id)->select('users.username','logs_ticket.created_at','action')->get();我的输出看起来例

mysql - laravel 4 - 如何限制(采取和跳过) Eloquent ORM?

TL;DR你能像使用take()那样限制EloquentORM查询吗?和skip()这样得到的mysql查询也有限制,不必返回整个数据集?如果是,你会如何修改:$test=User::find(1)->games->toArray();包括limit3offset2?表格:usersgamesuserGames--id--id--user_id--name--name--game_id--steam_id型号:classUserextendsEloquent{publicfunctiongames(){return$this->belongsToMany('Game','userGam

php - 有没有办法让表名自动添加到 Eloquent 查询方法中?

我正在Laravel5.5上开发一个应用程序,我遇到了一个特定查询范围的问题。我有以下表结构(省略了一些字段):orders---------idparent_idstatusparent_id列引用同一表中的id。我有这个查询范围来过滤没有任何child的记录:publicfunctionscopeNoChildren(Builder$query):Builder{return$query->select('orders.*')->leftJoin('ordersASchildren',function($join){$join->on('orders.id','=','childr

mysql - 如何在 Laravel 5 中使用 Eloquent 更新数据透视表

我是laravel的新手。我正在开发一个laravel5应用程序,但我被困在这里。我有2个模型:classMessageextendsEloquent{publicfunctionuser(){return$this->belongsTo('App\User','from');}publicfunctionusers(){return$this->belongsToMany('App\User')->withPivot('status');}}classUserextendsEloquent{publicfunctionmessages(){return$this->hasMany('

php - 如何将此 Laravel PHP 代码简化为一个 Eloquent 查询?

我假设这应该全部在一个查询中,以防止数据库中出现重复数据。这是正确的吗?如何将这段代码简化为一个Eloquent查询?$user=User::where('id','=',$otherID)->first();if($user!=null){if($user->requestReceived())accept_friend($otherID);elseif(!$user->requestSent()){$friend=newFriend;$friend->user_1=$myID;$friend->user_2=$otherID;$friend->accepted=0;$friend-