假设我有SharedComponents模块。在此模块中有一个SomeView组件。此组件使用的指令SomeDirective从DirectivesModule。我有这样的事情:
@NgModule({
imports: [DirectivesModule, ...],
declarations: [SomeView, ...],
...
})
Run Code Online (Sandbox Code Playgroud)
然后,我需要SomeView转到其他模块。这给我留下了:
@NgModule({
imports: [DirectivesModule, ...],
declarations: [...],
...
})
Run Code Online (Sandbox Code Playgroud)
没有其他声明的元素使用DirectivesModule。不再需要它,因此我想将其删除。但是我不能说不研究其他声明就可以安全删除。
所以我的问题是:有没有办法找到给定的模块导入或提供程序是否可以安全删除?在我正在从事的项目中,一个模块可以加载20个其他模块,保持其清洁确实是一项艰巨的任务。
我需要一种方法按两列对模型进行排序(但不是按 x、y 排序)。我有一个priority列可以“提升”结果中的模型,并且在未设置created_at时应该作为排序键的标准。priority我发现做到这一点的唯一方法是与工会合作。
通过这样的查询:
(SELECT * FROM `charts` WHERE priority IS NOT NULL ORDER BY priority ASC)
UNION (SELECT * FROM `charts` WHERE priority IS NULL AND created_at IS NOT NULL ORDER BY CREATED_AT ASC)
UNION (SELECT * FROM `charts` WHERE created_at IS NULL)
Run Code Online (Sandbox Code Playgroud)
所以我尝试做类似的事情:
public function scopeSortPriority($query)
{
return $query->whereNotNull('priority')
->orderBy('priority')
->union($query->whereNull('priority')
->whereNotNull('created_at')
->orderBy('created_at'))
->union($query->whereNull('priority')
->whereNull('created_at'));
}
Run Code Online (Sandbox Code Playgroud)
但遗憾的是它不起作用。
还有其他方法可以在 SQL 中完成我想要的事情吗?否则 - 我应该如何重建这个范围以使其发挥作用?