草庐IT

eloquent

全部标签

php - Laravel:在使用 Query Builder 或 Eloquent ORM 时对每次插入/更新执行一些任务

问题我想自动添加created_by和modified_by字段到Laravel4中对数据库表的每次插入/更新,无论我使用的是Eloquent还是QueryBuilder.但是,并非我所有的表都有这些字段,因此任何解决方案都必须在添加之前检查这些列是否存在。尝试的解决方案我已经扩展了Illuminate\Database\Eloquent\Model类并编写覆盖方法save()以便为保存的每条记录添加一些额外的元数据字段。这很好,但如果我使用查询生成器执行插入,那么这将被绕过。查看Model类,似乎数据库操作实际上是使用查询生成器完成的。我看过Illuminate\Database\Q

php - Laravel:Eloquent 如果列名包含破折号,如何获取模型的属性?

我的根路由中有以下内容:$user=User::all();return$user->column-one;它返回异常Useofundefinedconstantone-assumed'one'即使我确实有一个名为column-one的列我的用户表。那么如何从我的模型中获取column-one呢? 最佳答案 在深入挖掘Eloquent模型的源代码后,我发现了神奇的方法__get并了解到它只是对接受字符串的公共(public)函数getAttribute的包装因此,我现在可以通过$user->getAttribute('column-

php - Eloquent Tinker - 未定义常量

我正在关注这组tutorials在laravel上(他们很棒),我一直遇到这个错误:PHPerror:UseofundefinedconstantArticle每当我输入这行代码时:$article=newApp/Article;我已经严格按照这封信执行了所有操作,并使用了命令:$phpartisanmake:modelArticleModelcreatedsuccessfully.CreatedMigration:2015_04_11_152306_create_ar我觉得不寻常的是,在教程中,调用此命令时没有创建迁移。无论如何,我试图通过修补程序将一些数据输入到我的sqlite数据

php - 如何在一个 Eloquent 查询中增加和更新列

是否可以更新时间戳(updated_at除外)并在一次查询中增加一列?我当然可以->increment('count')和分别->update(['last_count_increased_at'=>Carbon::now()])但是有没有一种简单的方法可以一起做。Product::where('product_id',$product->id)->update(['count'=>$count+1,'last_count_increased_at'=>Carbon::now()];无需先查询并获取计数? 最佳答案 您可以在递增或递

php - Eloquent 嵌套 whereHas

目前我的模型集合中有这个whereHas:$query=self::whereHas('club',function($q)use($search){$q->whereHas('owner',function($q)use($search){$q->where('name','LIKE','%'.$search.'%');});});我的印象是上面的代码可能是这样的:$query=self::whereHas('club.owner',function($q)use($search){$q->where('name','LIKE','%'.$search.'%');});我知道这已经很

php - Laravel 4 Eloquent 返回错误的 ID

我的数据库中有3个表:事件用户公司一家公司可能有一些用户。一个用户可能有一些事件。用户(具有管理员权限)可以对属于其公司的任何事件执行某些操作。所以,我想检查是否他是否在他的竞选事件中执行这些操作(在最后一种情况下,我返回类似“访问被拒绝”的内容)。我的情况Campaign::join('users','users.id','=','campaigns.user_id')->where('users.company_id','=',Auth::user()->company->id)->where('campaigns.id','=',Input::get('id'))->first(

php - Order By before Group By 使用 Eloquent (Laravel)

我有一个包含以下列的“消息”表CREATETABLE`messages`(`id`int(11)NOTNULLAUTO_INCREMENT,`fromId`int(11)NOTNULL,`toId`int(11)NOTNULL,`message`textNOTNULL,`status`int(11)NOTNULL,`device`varchar(100)NOTNULL,`createdAt`timestampNOTNULLDEFAULTCURRENT_TIMESTAMP,PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=57DEFAULTCHAR

php - 从 laravel Eloquent 数据透视表中获取计数

我有订单和产品的多对多关系。belongsTo('User');}publicfunctionproducts(){return$this->belongsToMany('Product');}}?>belongsToMany('Order');}}?>需要获取每个产品的订购次数。在mysql中,可以使用以下查询来实现此任务SELECTproducts.id,products.description,count(products.id)FROMproductsINNERJOINorder_productONproducts.id=order_product.product_idINNE

php - 在 Laravel Eloquent 中更新一对多关系

假设我在Laravel的Eloquent中有以下两个模型之间的关系:hasMany('Setting');}publicfunctionsettingSet($key,$value){\Setting::setConfigItem($key,$value,$this->user_id);}}//settting://-setting_key//-setting_value//-user_idclassSettingextendsModel{publicfunctionsetConfigItem($key,$value,$user_id){//Note:I'veprovidedthisc

php - 通过多态使用 Laravel Eloquents HasManyThrough 关系与多个关系

我有一个相当简单的应用程序,用户可以在其中报告其他用户的评论和食谱。我使用多态关系来存储报告。哪个工作正常;但是,我现在正在尝试获取用户的违规行为。获取用户报告不是问题,这可以直接使用user->reports()完成,但我非常想获得其他人报告过该用户的报告。我可以使用hasManyThrough关系或查询来实现这一点,但一次只能在一个模型上进行。例如publicfunctionoffenses(){return$this->hasManyThrough('Recipe','Reports');}或者->with('user.recipe.reports')问题是我的可报告对象不仅仅是