目前,使用STYLE,我可以使用width: 100%
和auto
高度(反之亦然),但我仍然不能将图像限制在特定的位置,分别是太宽或太高.
有任何想法吗?
是否有Laravel方法来获取具有查询参数的Request的当前路径?
例如,对于URL:
http://www.example.com/one/two?key=value
Run Code Online (Sandbox Code Playgroud)
Request::getPathInfo()
会回来的/one/two
.
Request::url()
会回来的http://www.example.com/one/two
.
期望的输出是/one/two?key=value
.
我有很多@NonNull
使用Lombok构建器的字段.
@Builder
class SomeObject {
@NonNull String mandatoryField1;
@NonNull String mandatoryField2;
Integer optionalField;
...
}
Run Code Online (Sandbox Code Playgroud)
但是,这为调用者提供了在不设置a的情况下创建对象的选项mandatoryField
,在使用时会导致运行时失败.
SomeObject.builder()
.mandatoryField1("...")
// Not setting mandatoryField2
.build();
Run Code Online (Sandbox Code Playgroud)
我正在寻找在构建时捕获这些错误的方法.
有一些非Lombok方式,如StepBuilders,甚至是构造函数,以确保始终设置必填字段,但我对使用Lombok构建器实现此目的的方式感兴趣.
另外,我理解@AllArgsConstructor
为了进行编译时检查而设计类(比如一个步骤构建器或者一个)会产生很多笨拙的代码 - 这就是为什么我有动力构建一个后编译的FindBugs步骤来检测这些.
现在,当我明确地将@NonNull
字段设置为时,FindBugs确实失败了null
:
FindBugs检测到此失败,
new SomeObject().setMandatoryField1(null);
Run Code Online (Sandbox Code Playgroud)
但它没有检测到这个:
SomeObject.builder()
.mandatoryField1(null)
.build();
Run Code Online (Sandbox Code Playgroud)
它也没有发现这个:
SomeObject.builder()
.mandatoryField1("...")
//.mandatoryField2("...") Not setting it at all.
.build();
Run Code Online (Sandbox Code Playgroud)
这似乎正在发生,因为Delomboked构建器看起来像,
public static class SomeObjectBuilder {
private String mandatoryField1;
private String mandatoryField2;
private Integer optionalField;
SomeObjectBuilder() {}
public SomeObjectBuilder mandatoryField1(final String mandatoryField1) {
this.mandatoryField1 …
Run Code Online (Sandbox Code Playgroud) 考虑这个例子,我有2个输入字段:
<input id="a" />
<input id="b" style="display: none" />
Run Code Online (Sandbox Code Playgroud)
并考虑以下JavaScript,这是尝试这样做:
显示#b
只有当#a
具有焦点,并隐藏#b
每当#a
失去焦点,除非#a
其重点丧失#b
.
$("#a").focus(function() {
$("#b").show();
});
$("#a, #b").blur(function() {
$("#b").hide();
});
$("#b").focus(function(){
$("#b").show();
});
Run Code Online (Sandbox Code Playgroud)
$("#a").focus(function() {
$("#b").show();
});
$("#a, #b").blur(function() {
$("#b").hide();
});
$("#b").focus(function() {
$("#b").show();
});
Run Code Online (Sandbox Code Playgroud)
#b {
display: none;
}
Run Code Online (Sandbox Code Playgroud)
<input id="a" value=a>
<input id="b" value=b>
<br/>^ focus on the input
Run Code Online (Sandbox Code Playgroud)
上面的代码是不正确的,因为$("#b").focus()
永远不会被触发,因为一旦#a
失去焦点,#b
就会被隐藏.在Firefox(版本24.6.0)中观察到此预期行为.
但在Chrome(版本35.0)中,代码似乎运行不正确(或正确!?).
很明显,该b.focus
活动仍在Chrome中注册.为什么此事件在Chrome中注册,而在Firefox中注册?
更新 …
我正在使用以下代码java.lang.NullPointerException
进行调用ResultSet.getDate()
.但是,数据库中的条目似乎不是null
.连接似乎是活动的,因为正在获取其他字段.我究竟做错了什么?
try {
... /* Code that creates a connection and initializes statement */
String query = "SELECT * FROM groups WHERE id = 'testGroup1'";
ResultSet rs = statement.executeQuery(query);
if(rs.next()) {
admin = rs.getString("admin_id");
User.process(admin);
java.sql.Date created_on = rs.getDate("created_on");
System.out.println("Created on = " + created_on.toString());
}
}
catch(Exception e) {
System.out.println("Stuck here");
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
这是输出和堆栈跟踪:
Admin id = 42 // User.process prints the admin id
Stuck here
java.lang.NullPointerException
at com.mysql.jdbc.ResultSet.findColumn(ResultSet.java:966)
at com.mysql.jdbc.ResultSet.getDate(ResultSet.java:1988)
at com.myapp.server.model.Group.initInfo(Group.java:39) …
Run Code Online (Sandbox Code Playgroud) 我创建了一个可终止的中间件,可以向Google Analytics发送请求.我发送的一个属性是服务器响应时间.我是这样做的:
在\App\Http\Kernel
我添加SendAnalytics
中间件:
class Kernel extends HttpKernel {
...
protected $middleware = [
'Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode',
...
'App\Http\Middleware\SendAnalytics',
];
}
Run Code Online (Sandbox Code Playgroud)
而SendAnalytics
中间件是这样的:
class SendAnalytics implements TerminableMiddleware {
protected $startTime;
public function __construct() {
$this->startTime = microtime(true);
}
public function handle($request, Closure $next) {
return $next($request);
}
public function terminate($request, $response) {
$responseTime = microtime(true) - $this->startTime;
/* I send a request to Google here, using their Measurement Protocol */
// Dying for debugging purposes
dd($responseTime); …
Run Code Online (Sandbox Code Playgroud) 根据文件,restricted_package_name
意味着:
此参数指定包含应用程序包名称的字符串.设置后,仅将消息发送到与包名称匹配的注册ID.可选的.
但是,无论我们指定字段,注册ID都不匹配吗?什么是用例restricted_package_name
?
我有一个包含Eloquent实体及其各自的RESTful资源控制器的Laravel应用程序,如下所示:
class Entity extends Eloquent {
...
}
Run Code Online (Sandbox Code Playgroud)
class EntityContoller {
public function index() {
Entity $entities = Entity::all();
return view('entity.index', compact($entities));
}
... // And many more routes like that
}
Run Code Online (Sandbox Code Playgroud)
现在,我正在构建一个android应用程序,而不是返回视图,我需要将数据作为JSON。
在当前解决方案中,对于我从Android应用程序发出的每个请求,我都会添加get query参数contentType=JSON
。我在控制器中检测到该错误,并相应地发送数据,如下所示。但这似乎很乏味,我必须在所有地方都写相同的条件。
class EntityContoller {
public function index() {
Entity $entities = Entity::all();
if(Request::get('contentType', 'JSON')) return $entities;
return view('entity.index', compact($entities));
}
... // And many more routes like that
}
Run Code Online (Sandbox Code Playgroud)
我不必在每个控制器动作中都写此条件的最佳方式是什么?
我有一个网页,在打印时需要遵循col-sm-*
网格而不是col-xs-*
网格。有没有简单的方法可以做到这一点?可以更改打印预览页面的宽度,以使其适合col-sm-*
规则的所有样式吗?
这是一个例子:
window.print();
Run Code Online (Sandbox Code Playgroud)
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" />
<div class="row">
<div class="col-sm-6 col-xs-12">
<h1>Left column</h1>
</div>
<div class="col-sm-6 col-xs-12">
<h1>Right column</h1>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这是实际打印的内容:
这是我希望它打印的内容:
我试图模拟一个 void 方法来每次都抛出异常。该方法将 aList<SomeClass>
作为参数。我如何将其传递给Mockito.any()
?
Mockito.doThrow(new Exception())
.when(myClassInstanceSpy)
.myVoidMethod(Mockito.any(List<SomeClass>.class)); // This fails!
Run Code Online (Sandbox Code Playgroud)
这是我的类定义:
class MyClass {
...
public void myVoidMethod(List<SomeClass> scList) {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)