Php Laravel(OctoberCMS)排序(获取)模型
我正在尝试按组名(在组件中)对课程进行排序。我使用Ajax通过Post方法获取group_id,并尝试获得类似的经验教训,但返回的数组是空的 Schedule.php:Php Laravel(OctoberCMS)排序(获取)模型,php,laravel,octobercms,Php,Laravel,Octobercms,我正在尝试按组名(在组件中)对课程进行排序。我使用Ajax通过Post方法获取group_id,并尝试获得类似的经验教训,但返回的数组是空的 Schedule.php: public $belongsTo = [ 'discipline' => 'Titamik\Cio\Models\Discipline', 'auditorium' => 'Titamik\Cio\Models\Auditorium',
public $belongsTo = [
'discipline' => 'Titamik\Cio\Models\Discipline',
'auditorium' => 'Titamik\Cio\Models\Auditorium',
'professors' => 'Titamik\Cio\Models\Professor',
'groups' => 'Titamik\Cio\Models\Group',
];
Group.php:
public $hasMany = [
'direction' => 'Titamik\Cio\Models\Direction',
'schedule' => 'Titamik\Cio\Models\Schedule'
];
ScheduleComponent.php:
public function onSort() {
$groupId = post('groupid');
$this->page['schedule'] = Schedule::groups()->where('id', $groupId)->get();
return $this->page['schedule'];
}
这应该能解决你的问题 另一个旁注。如果要通过ajax进行排序,则不需要页面变量;如果没有页面加载,它将不会更新。在这种情况下,只需返回明细表中的值即可。我也会考虑你的要求
public function onSort() {
$groupId = post('groupid');
$schedules = Schedule::whereHas('groups', function ($query) use ($groupId) {
$query->where('id', $groupId);
})->get();
return $schedules;
}
由于需要进行大量排序,我决定不必每次都对数据库进行查询,而是对启动组件时得到的数组进行排序。在这方面,有三个问题:1。这是正确的决定吗?2.如何获取与课程
$this->page['schedule'][1]->groups[0]
3关联的组的id。如果我使用更新参数``update:{'schedulecomponent::schedule table':'.'#schedule table container'},``@Titamik,而不是page变量,那么为什么通过return使用数组更合理呢?您从来没有解释过您正在更新一个分部文件。为你的第二个和第三个问题提出一个新问题。您的第一个问题是意见,如果您严格要求性能,请选择更好的服务器。Laravel在查询数据库方面非常高效。我没有遇到过很多过滤器的性能问题。
public function onSort() {
$groupId = post('groupid');
$schedules = Schedule::whereHas('groups', function ($query) use ($groupId) {
$query->where('id', $groupId);
})->get();
return $schedules;
}