我有三张桌子:
1)任务;
2)访问;
3)task_visit;
每次访问都可以有0个或几个任务。我需要按访问次数对任务进行排序。例如,第一项任务有4次访问,第二次 - 10次等。
在类似的情况下,我有两张桌子:
1)医生;2)访问
我通过访问对医生进行排序。
在StatVisit控制器中:
$tests = \App\Doctor::withCount(['visitsbydoctor' => function ($query) use ($a,$b){
$query->whereBetween('date', array($a,$b));
}])->orderBy('visitsbydoctor_count', 'desc')->paginate(1000000);
在医生模型中:
public function visitsbydoctor()
{
return $this->hasMany(Visit::class);
}
如果是数据透视表,如何重写此代码?对于任务模型和StatVisit控制器,如在医生案例中。
答案 0 :(得分:0)
使用完全相同的方法。 withCount()
也适用于多对多关系:
<%- include('some-template'); %>
答案 1 :(得分:0)
我找到了下一个工作解决方案:
DECLARE @DROP VARCHAR(MAX)
DECLARE @TAB VARCHAR(MAX)='Employees'
DECLARE @CREATE VARCHAR(MAX)
DECLARE @SELECT VARCHAR(MAX)
--IF OBJECT_ID('DBO.'+@TAB,'U') IS NOT NULL
--BEGIN
IF (EXISTS (SELECT 1
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = @TAB))
BEGIN
SET @DROP = N'DROP TABLE '+@TAB
EXEC(@TAB)
END
SET @CREATE= 'CREATE TABLE '+@TAB+
'(
ID INT
,NAME VARCHAR(50)
,PHONE VARCHAR(25)
,ADDRESS VARCHAR(100)
)'
EXEC(@CREATE)
SET @SELECT='SELECT * FROM '+@TAB
EXEC(@SELECT)