我有一些Laravel多态模型,其中包括一个用户模型,可以有许多预订日历条目,可以有许多假日条目。我可以编写下面的SQL查询来提取所需的数据,但要与雄辩的查询版本作斗争。也许这是我的模型关系,或者我对拉拉维尔事物如何运作的理解。我有一些雄辩的查询确实有效,但是,它们非常低效,当我调查时,会使用许多选择,而不仅仅是一个。
我的SQL:
select hol.*
from booking_calendar bc
join holidays hol
on bc.booked_by_id = hol.id
where bc.model_type='App\Staff'
and bc.model_id=123
and bc.booked_by_type='App\Holiday'
数据库表:
Staff: (App\Staff)
id 123
...
booking_calendar: (App\BookingCalendar)
model_id 123
model_type App\Staff
...
booked_by_id 77
booked_by_type App\Holiday
holidays: (App\Holiday)
id 77
...
我想我的问题的症结在于预订日历有两个多态关系,因为它也用于资产预订。
我想做的是$工作人员-
如果有人能在一个不是原始SQL语句的雄辩select语句中解释如何做到这一点,我将不胜感激。
我根据你的数据库设计假设关系。
工作人员
假日
员工模型
public function bookingCalendars(){
return $this->morphMany(App\BookingCalendar::class, 'model');
}
假日模型
public function bookingCalendars(){
return $this->morphMany(App\BookingCalendar::class, 'booked_by');
}
Booked日历模型
public function model(){
return $this->morphTo();
}
public function booked_by(){
return $this->morphTo();
}
filter
和pull
是采集方法。
$staff = Staff::with('bookingCalendars.model')->find($id);
$filtered_bks = $staff->bookingCalendars->filter(function($bk){
return $bk->model_type == 'App\Holiday';
});
$holidays = $filtered_bks->pluck('model');
我正在使用Laravel和它提供的雄辩的ORM,但我正在努力选择我需要的数据。我有两种型号 我该怎么做?
我有许多对许多用户与城市地区之间的联系。我也有连接城市区域的区域(一个城市区域只能连接一个区域)。 我有这样的数据库结构: 使用者 id 城市地区 id 姓名 area_id 城市用户 id cityarea_id user_id 地区 id 姓名 接下来我有模特 用户 城市地区 地区 问题: 如何让所有用户与雄辩? 谢谢!!
在我的应用程序中,我更新了从一对多到多对多的关系,我试图找出一种持久化关联功能的方法。 假设我有两个相关的表,例如狗和主人。如果我有一系列的主人,并且我正试图为这些主人获取一份狗的id列表,我应该如何雄辩地做到这一点? 这里也提出了类似的问题:https://laracasts.com/discuss/channels/laravel/getting-many-to-many-related-da
如何使用laravel雄辩的ORM关系在多个表中发出一个插入请求。即 表1:用户 id 姓名 电子邮件 表2:员额 id 表3:图像 id 用户id 邮政id 图像名称 关系 表id引用了其他两个表中的 表与
我刚刚开始学习LaravelV3,我试图通过创建一个博客来了解eloquent的一对多关系。我的帖子与类别有多对一的关系(每个帖子都链接到一个类别)。 我有以下表格和以下字段: 帖子:id、标题、正文、创建日期、类别id 类别:id、名称 我有以下两种型号: 我想出了如何通过传递类别id来获得所有帖子: 我只是需要帮助,找出如何获得所有的职位,并得到他们的更正类别。因此,在视图中的一天结束时,我可
如何制作一对多访问器? 用户模型: 历史模型: 如果我真的喜欢下面,它将工作。 用户模型: 历史模型: 控制器: 刀片视图: 它起作用了! 但是,我应该怎么做,如果我想要这个: 我喜欢 历史模型: 它不工作! 如果我编码像 它会回来的 此集合实例上不存在属性[happy]。 如果我编码像 它会回来的 未定义的属性:Illumb\Database\Eloquent\Relations\HasMany