我正在为我的 Laravel 4 应用程序创建一个自定义 artisan 命令 (foo)。我可以从用户指南中看到如何接受参数和选项,例如
php artisan foo argument --option
Run Code Online (Sandbox Code Playgroud)
但是,如果我想要一个具有许多“方法”的自定义 artisan 命令,其风格与某些内置 artisan 命令(例如migrate:install )相同,该怎么办?我想做一些类似的东西:
php artisan foo:baz argument --option
Run Code Online (Sandbox Code Playgroud)
基于:冒号分隔符实现不同方法的推荐方法是什么?到目前为止,我发现尝试的只是为每个“方法”创建一个全新的 artisan 命令。有更有效的方法吗?
我想将PHP中的字符串拆分为"名称"部分(字符串)和"键"部分(整数数组).
输入示例:
$input = "Sum(1, 5, 7)";
Run Code Online (Sandbox Code Playgroud)
期望的输出:
$name = "Sum";
$keys = [1, 5, 7];
Run Code Online (Sandbox Code Playgroud)
我一直在看爆炸,str_split preg_split,我确信有很多可能的实现.什么是最优雅的解决方案?
我想在容器内部的某些内容旁边放置一个动态徽标(宽度变量/未知)(请参阅附件的模型 - 徽标位于绿色的右侧,内容为蓝色).我特别希望内容div延伸到页面的完整剩余宽度,如模型中所示:
但是当我尝试将内容浮动到左侧并将徽标浮动到右侧(jsfiddle)时,徽标位于内容下方,除非我将内容宽度设置为小于100%(并且我无法知道内容宽度,因为徽标宽度可以变化).
HTML:
<div id="container">
<div id="content"></div>
<div id="logo"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
#content {
border: 1px solid green;
height: 300px;
width: 100%;
float: left;
}
#logo {
border: 1px solid red;
width: 50px; /*unknown width*/
height: 50px;
float: right;
}
Run Code Online (Sandbox Code Playgroud)
如何将内容div拉伸到整个容器宽度减去徽标的宽度?
我有一个匹配 ASCII 字母数字字符的工作正则表达式:
string pattern = "^[a-zA-Z0-9]+$";
Match match = Regex.Match(input, pattern);
if (match.Success)
{
...
Run Code Online (Sandbox Code Playgroud)
我想扩展它以应用相同的概念,但包括所有拉丁字符(例如 å、Ø 等)。
我已经阅读了有关unicode 脚本的信息。我试过这个:
string pattern = "^[{Latin}0-9]+$";
Run Code Online (Sandbox Code Playgroud)
但它与我期望的模式不匹配。如何使用 unicode 脚本或替代方法匹配拉丁语 unicode?
我有一个MySQL表,看起来像这样:
id load_transit load_standby hours_transit hours_standby
1 40 20 8 4
2 30 15 10 10
3 50 10 3 9
Run Code Online (Sandbox Code Playgroud)
我需要做以下计算:
(中间计算)
hours_transit_total = 8+10+3 = 21
hours_standby_total = 4+10+9 = 23
Run Code Online (Sandbox Code Playgroud)
(期望的结果)
load_transit_weighted_mean = 40*(8/21) + 30*(10/21) + 50*(3/21) = 36.667
load_standby_weighted_mean = 20*(4/23) + 15*(10/23) + 10*(9/23) = 13.913
Run Code Online (Sandbox Code Playgroud)
是否可以在单个查询中执行此操作?最好的设计是什么?
我有一个包含StartTime(DATETIME)字段的数据行的表.大约去年,每分钟都有一行数据.我想要一种方法来运行脚本来更新StartTime字段,以便时间戳是"最近的"(这是Web应用程序的演示数据).
我的想法是使用ROW_NUMBER()和DATEADD()用新的时间戳更新每一行,从一年前的当前时间开始,每行迭代一分钟.
这个想法似乎适用于SELECT语句:
SELECT TOP 10
DATEADD(MINUTE,ROW_NUMBER() OVER (Order by StartTime),DATEADD(yy, -1, GETDATE())) AS Ds
FROM Test WHERE ItemId='0E0814B9-79A0-4BCF-AB33-B89D84CA3BEC' ORDER BY StartTime;
Run Code Online (Sandbox Code Playgroud)
这会产生一分钟的预期时间戳:
2015-12-21 17:57:55.550
2015-12-21 17:58:55.550
2015-12-21 17:59:55.550
Run Code Online (Sandbox Code Playgroud)
但是当我使用UPDATE语句尝试相同的概念时:
WITH Datarows (Ds)
AS
(
SELECT DATEADD(MINUTE,ROW_NUMBER() OVER (Order by StartTime),DATEADD(yy, -1, GETDATE())) AS Ds
FROM Test
WHERE ItemId='0E0814B9-79A0-4BCF-AB33-B89D84CA3BEC'
)
UPDATE Test
SET StartTime = Ds
FROM Datarows
Run Code Online (Sandbox Code Playgroud)
所有更新的时间戳都是相同的:
2015-12-21 17:30:14.463
2015-12-21 17:30:14.463
2015-12-21 17:30:14.463
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?如何更新所有行以使时间戳间隔一分钟?