我有以下2张表:
Cars
----
id | created_at
and
Repaired
id | cars_id | updated_at
我想显示所有的汽车,由created_at
desc订购,但也由updated_at
从修复
透视表订购。修复的条目可以具有许多特定的cars_id
。
所以如果carA
是created_at2017-02-20
,并且carB
是created_at2016-01-10
,但是修复carB
中的updated_at
在2017-02-22
,我想显示carB
BEFOREcarA
,因为关系是较新的。
我也不想从关系表中加载数据。
我试过以下方法:
$cars = $model->load(['repaired' => function($query) {
return $query->orderBy('updated_at', 'desc');
}])->orderBy('created_at', 'desc');
和
$model->join('repaired', 'repaired.cars_id', '=', 'cars.id')
->orderBy('repaired.updated_at', 'desc')
->orderBy('cars.created_at', 'desc')
->select('cars.*');
^此查询返回修复表中的所有项,即使updated_at
字段为NULL
。我不能把他们分组。
$popular_posts = Post::withCount('favorite_to_users')
->orderBy('view_count', 'desc')
->orderBy('favorite_to_users_count', 'desc')
->take(5)->get();
您可以在Eloquent中使用touch parent timestamps
功能,在每次维修更新时更新车辆的updated\u。
在修复的模型中,只需添加以下行:
protected $touches = ['car'];
当然,这是假设您的关系方法名为
car()
。
然后你可以这样做:
Cars::orderBy('updated_at');
每次添加或更新修复表中的一行时,在汽车关系中指定的汽车将其updated_at设置为相同的时间。这样你就可以按它点菜了。
我有以下三个表格: 所以基本上这种关系就像: 用户有许多项目 项目属性到客户端 我的问题是: 如何使用eloquent获得用户的所有客户端? 似乎我不能用户hasManyPass方法,因为在客户端表中没有project_id。 因此,我希望达到的目标是:
我有三种模式——博客、帖子、评论。博客有很多帖子,帖子有很多评论 当我写作时 它会给所有的博客发帖子和评论。但我将如何获得那些由管理员用户创建的博客,即评论表中的用户id。在哪里写入
我是Laravel5.2的新手,正在开发一个遗留系统,对雄辩有点困惑,希望有人能给我代码。 共有3个表格: 卡片类别卡片2类 卡片可以是许多类别的一部分,这些类别保存在cards2cat表中。 cards2cat表的结构如下 id(主键)图像(卡)类别 我想做的是在Cards模型中有一个方法,名为getCardsWithCategors,它返回Cards信息和category表中类别的名称。 ca
我正在编写php代码,对于当前的项目,我正在使用laravel框架(带有雄辩的ORM)。在这个项目中,我创建了两个表:用户和任务。我想在这些表之间创建一个“一对多”的关系。因此,一个用户可以有许多任务。在Tasks类中,我创建了方法所有者(): 但是当我以前得到用户名的时候 我得到这个异常:未定义的属性:illumb\Database\Eloquent\Relations\BelongsTo::$
我试着补充: 并用调用,但响应为空。
我刚刚开始学习LaravelV3,我试图通过创建一个博客来了解eloquent的一对多关系。我的帖子与类别有多对一的关系(每个帖子都链接到一个类别)。 我有以下表格和以下字段: 帖子:id、标题、正文、创建日期、类别id 类别:id、名称 我有以下两种型号: 我想出了如何通过传递类别id来获得所有帖子: 我只是需要帮助,找出如何获得所有的职位,并得到他们的更正类别。因此,在视图中的一天结束时,我可