我最近一直在使用这个表包,MedicOneSystems/livewire-datatable,我似乎无法从枢轴表中获取信息。
public function builder()
{
return $this->model::query();
}
这是在他们的基本带电控制器,然后您可以创建您自己的控制器,使用他们提供的一些功能。我的问题是,一旦我输入一个工作簿(工作簿),我需要获得存储在一个枢轴表(StationWorkbook)中的站点,然后进一步从车站表中获取站点(站点)名称和其他所有内容。我可以得到所有的站点,或者只是枢轴,或者仅仅是工作簿,但是我似乎无法通过它们--这是我在我的控制器中已经尝试过的。
public function builder()
{
return $this->current_workbook->stations->query();
}
Illuminate\Database\Eloquent\Collection::query不存在
方法
public function builder()
{
return Station::query();
}
public function builder()
{
return StationWorkbook::query();
}
public function builder()
{
return Workbook::query();
}
public function builder()
{
return Workbook::query()->where('id', $this->workbook)->stations;
}
属性站并不存在于雄辩的构建器实例中。所有这些都无法返回工作簿的站点。
发布于 2021-10-07 12:32:54
您正在尝试访问雄辩的stations
上的集合QueryBuilder --直到您使用get()
之后才能工作,因为它需要一个QueryBuilder实例,所以您不能使用这个包。
我不完全确定您在这里需要什么,但是如果您需要属于该Workbook的站点,那么您需要返回站点模型的querybuilder。
如果我们假设您已经在您的workbook
模型上定义了一个Station
关系,那么您可以使用whereHas()
(可以在querybuilder上调用它)来限制您需要的数据。我假设$this->workbook
是ID,而不是模型的完整实例(如果是模型,则需要使用$this->workbook->id
)。
public function builder()
{
return Station::whereHas('workbook', function($query) {
return $query->where('id', $this->workbook);
});
}
您还可以通过添加with()
来急切地加载查询中的工作簿。急切加载意味着Laravel将检索与工作簿连接的站点,这样您就可以访问两个站点的数据,而不需要额外的查询。
public function builder()
{
return Station::with('workbook')->whereHas('workbook', function($query) {
return $query->where('id', $this->workbook);
});
}
https://stackoverflow.com/questions/69471202
复制