我创建了一个 Kibana 仪表板,其中包含一些可视化内容。我可以使用提供的 url 成功嵌入仪表板:
{url}/app/kibana#/dashboard/{dashboard_uuid}?embed=true&_g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:now-1y,mode:quick,to:now))
Run Code Online (Sandbox Code Playgroud)
现在,我希望我的应用程序的任何用户都能看到此仪表板,经过筛选以便仅查看他们的数据。我需要的过滤查询非常简单,因为所有数据都包含一个字段user_id。
示例:对于具有标识符的用户$id,我想加载带有过滤器的仪表板user_id:$id
有没有办法通过url设置过滤器?我看到已经有一些参数(refreshInterval,time..),但我找不到正确的文档。有任何想法吗?
使用 Kibana6.2.2和 ElasticSearch6.6.0
我尝试通过参数设置过滤器_a,如下所述: https: //discuss.elastic.co/t/dashboard-search-parameter-via-url/84385,但没有成功。
{url}/app/kibana#/dashboard/{dashboard_uuid}?
embed=true&
_g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:now-1y,mode:quick,to:now))&
_a=(filters:!(),query:(querystring:(query: "user_id:1")))
Run Code Online (Sandbox Code Playgroud) 在我的 PHP 项目中,我使用 Guzzle 进行了很多不同的 API 请求。为了处理所有异常,每个 API 调用都被包装到一个 try-catch 块中。一个例子:
try {
$res = $client->get($url, [
'headers' => [
'Authorization' => "bearer " . $jwt,
]
]);
} catch (ClientException $clientException) {
// Do stuff
} catch (ConnectException $connectException) {
// Do stuff
}catch (RequestException $requestException){
// Do stuff
}
Run Code Online (Sandbox Code Playgroud)
对于每个请求,异常处理是相同的,但实际执行块差异很大,不能简单地用一组选项来描述。
有没有办法创建一个函数/类,能够将自定义执行块包装到相同的 try-catch 处理中?
我想出的唯一选择是使用一个接口,其中包含一个execution()由每个子项扩展的函数和一个run()具有 try-catch 块并$this->execution()在执行块内简单调用的函数。它可以工作,但我发现为每个不同的 API 调用创建一个全新的类过于冗长,而这些 API 仅在我的项目的一个点中使用。
是否有更好/更简洁的解决方案来避免相同异常处理的代码重复?
我有一个字符,我需要检查它是否在给定范围内,即在“A”和“F”之间。
我当然可以
if ($c == 'A' || $c == 'B' || ..)
Run Code Online (Sandbox Code Playgroud)
但这太可怕了。
有什么建议么?
我正在构建一些 REST API 以在本机 iOS/Android 应用程序中使用。其中一个端点允许用户通过提供 2 个字段来更新其密码:old_password和password。
如果 HTTP 状态码不正确,我应该使用哪个状态码old_password?
我的第一个想法是一个401错误,但当身份验证令牌无效时我已经使用它,并且它会自动触发应用程序中的注销。
400似乎不合适,因为请求实际上在语义上是正确的,它是一个特定的身份验证错误。或许422?
如何获取存储文件夹中存储的文件的文件大小?$fileFullPath导致正确的路径,但$size = Storage::size($fileFullPath)引发异常:File not found at path。
public function getFromStorage()
{
$contents = Storage::disk('local')->get('txtFiles/file.txt');
$fileFullPath = Storage::disk('local')->path('txtFiles/file.txt');
$size = Storage::size($fileFullPath);
dd( $fileFullPath) // return correct path
dd( $size) // return file not found
}
Run Code Online (Sandbox Code Playgroud) 我正在创建一个使用 AES 加密数据的 apache 模块。我的最终目标是为每个请求使用不同的 AES 密钥,生成一个 16 字节的新密钥,用于 AES 加密文件并将密钥(使用 RSA 加密)作为自定义标头发送
问题是我找不到任何文档来以编程方式设置自定义标头。
我期待像 ap_set_handler("HeaderName","content")
我只发现这个文件使用了这样的功能:http : //opensource.apple.com/source/apache/apache-643/apache/src/modules/proxy/proxy_ftp.c
问题是将它包含在我的源代码中会给我一个implicit declaration of function 'ap_set_header'错误,即使我包含了该文件的相同 .h 文件。
我很确定它可以完成,但我真的不知道在哪里搜索
我多次遇到问题,我无法在外部 js 文件中获得 onclick 函数以在我的 Laravel 项目中工作。这是我的页面源中的一个示例:
<button onclick="testMe()">test</button>
<script type="text/javascript" src="http://[myurl]/js/jobs.js"></script>
Run Code Online (Sandbox Code Playgroud)
在jobs.js中:
function testMe() {
console.log('i have appeared');
}
Run Code Online (Sandbox Code Playgroud)
这个例子来自在我点击调用后调用我的脚本标签。我还尝试在单击之前添加脚本。我也尝试将它添加到我的<head>,但以下错误仍然存在:
未捕获的 ReferenceError:testMe 未在 HTMLButtonElement.onclick 中定义
我知道它找不到该功能,但是我还能尝试什么来解决这个问题?是否可以将 onclick 调用到外部 JS 文件?
编辑:
这是我的 webpack 文件的相关行:
.js('resources/js/jobs/jobs.js', 'public/js/jobs.js')
我实际上如何称呼它(与查看页面 src 的外观相反):
<script type="text/javascript" src="{{ asset('js/jobs.js') }}"></script>
这也肯定会被引入,因为我在函数上方有一个控制台日志,它被记录到控制台。
我刚刚将我的 Vue 项目迁移到 Typescript,但有一种情况我需要管理。
我需要在应用程序中处理一些分页表,因此我创建了一个Tablemixin 来处理我的记录集合的分页:
@Component
export default class Table<T> extends Vue {
records: T[] = []
page: number = 0
length: number = 20
get total () {
return this.records.length
}
get visibleRecords(): T[] {
return this.records.slice(this.page*this.length, (this.page+1)*this.length)
}
public changePage (newPage: number) {
this.page = newPage
}
}
Run Code Online (Sandbox Code Playgroud)
每个渲染表、扩展 mixin、填充属性并简单显示计算属性records的结果的组件。visibleRecords一个基本组件:
export default class Sampletable extends Mixins(Table) {
records: RecordType[] = [ .... my data array ... ]
}
<template>
<table>
<tr …Run Code Online (Sandbox Code Playgroud) 这是我的数组
var hundred = [1 , 2 , 3 , ... , 100];
function divideByThree(array)
{
return array.filter((a) => {
return (a / 3) === 0;
});
}
Run Code Online (Sandbox Code Playgroud) php ×3
javascript ×2
laravel ×2
apache ×1
api ×1
arrays ×1
character ×1
code-reuse ×1
kibana ×1
kibana-6 ×1
range ×1
rest ×1
typescript ×1
vue.js ×1