我有一个名为Category的简单模型,它具有以下模式:
|----------------------------------------------|
| cat_id | cat_name | parent_id |
|----------------------------------------------|
| 1 | Home | 0 |
|----------------------------------------------|
| 2 | Products | 1 |
|----------------------------------------------|
| 3 | Services | 1 |
|----------------------------------------------|
| 4 | Product A | 2 |
|----------------------------------------------|
| 5 | Product B | 2 |
|----------------------------------------------|
Run Code Online (Sandbox Code Playgroud)
所以你可以看到我们将得到一个非常直接的层次结构,如下所示:
Home
- Products
- Product A
- Product B
- Services
Run Code Online (Sandbox Code Playgroud)
我正在尝试在Laravel 4.2中映射这种关系,以便我可以查询模型并获取其父项(它将始终具有父项)和子项类别(如果它们存在).
我使用以下方法在Category模型中定义了关系:
public function children()
{
return $this->hasMany('Category', 'parent_id', 'cat_id');
}
public …Run Code Online (Sandbox Code Playgroud) 我有三个表:monthly_revenue,currencies和foreign_exchange.
|------------------------------------------------------|
| id | product_id | currency_id | value | month | year |
|------------------------------------------------------|
| 1 | 1 | 1 | 100 | 1 | 2015 |
| 2 | 1 | 2 | 125 | 1 | 2015 |
| 3 | 1 | 3 | 115 | 1 | 2015 |
| 4 | 1 | 1 | 100 | 2 | 2015 |
| 5 | 1 | …Run Code Online (Sandbox Code Playgroud) 例如[300, 500, 700, 1000, 2000, 3000],我有一个数字数组,我想找到最接近的数字,而不是在给出的数字之下.
例如,搜索2200将返回3000(不是2000).
但是,如果我搜索3200,因为数组中没有更高的值,它应返回3000,因为没有其他选择.
我可以使用以下值获得最接近该值的数字:
if (sizeToUse == null || Math.abs(this - monitorWidth) < Math.abs(sizeToUse - monitorWidth)) {
sizeToUse = this;
}
Run Code Online (Sandbox Code Playgroud)
但是,我无法完成所有工作.我的完整代码是:
$(function() {
var monitorWidth = window.screen.availWidth,
sizeToUse = null,
upscaleImages = false;
$('.responsive-img').each(function(){
var sizeData = $(this).attr('data-available-sizes');
sizeData = sizeData.replace(' ', '');
var sizesAvailable = sizeData.split(',');
sizesAvailable.sort(function(a, b){return b-a});
$.each(sizesAvailable, function(){
if(upscaleImages){
if (sizeToUse == null || Math.abs(this - monitorWidth) < Math.abs(sizeToUse - monitorWidth)) {
sizeToUse = this;
}
}
else{ …Run Code Online (Sandbox Code Playgroud) 我有一个类,它有一个利用PHP的全局file_get_contents函数的方法.我需要在类上测试方法,而不是实际调用全局函数.
我知道我可以使用命名空间来覆盖返回的内容file_get_contents,但是我的测试已经在一个单独的命名空间中,所以我不能简单地将命名空间与类匹配.
这是一些代码:
<?php
namespace MyVendor\MyProject;
class MyClass
{
private $someProperty;
public function __construct($override = '')
{
$this->someProperty = $override;
}
public function myMethod()
{
$request = 'http://example.com';
$response = $this->someMethodUsingGlobals($request);
// Do something with the response..
}
public function someMethodUsingGlobals($url)
{
return json_decode(file_get_contents($url),true)['results'][0];
}
}
Run Code Online (Sandbox Code Playgroud)
<?php
namespace MyProjectTests;
public function test_it_does_something_with_the_response()
{
$sut = new MyClass();
$response = $sut->myMethod();
$this->assertEquals('Some expectation', $response);
}
Run Code Online (Sandbox Code Playgroud)
我需要someMethodUsingGlobals()在类上模拟该方法,但不完全确定如何去做.
表和一些虚拟数据来说明问题.
存储有关成员的基本信息.
------------------------------------
| member_id | email |
------------------------------------
| 1 | 1@a.com |
------------------------------------
| 2 | 2@a.com |
------------------------------------
| 3 | 3@a.com |
------------------------------------
| 4 | 4@a.com |
------------------------------------
| 5 | 4@a.com |
------------------------------------
Run Code Online (Sandbox Code Playgroud)
为每个成员存储一些额外的元数据
----------------------------------------
| member_id | name | surname | company |
----------------------------------------
| 1 | A | A | A |
----------------------------------------
| 2 | B | B | B |
----------------------------------------
| 3 | C | C …Run Code Online (Sandbox Code Playgroud) 根据以下示例,我的代码中有一个字符串:
<?php
$find = '<tag';
$string = 'blah blah <tag=something>';
?>
Run Code Online (Sandbox Code Playgroud)
很简单,但是当我尝试回显字符串时,它不喜欢<或>字符.所有得到回应的是:
等等等等
所以,基本上我猜我需要转义这些字符,让他们在工作PHP但林不知道到底如何.我正在将它用于模板系统,因此在html文件中可以使用以下命令包含文件:
<include="filename.html">
Run Code Online (Sandbox Code Playgroud)
所以我不需要随时在屏幕上显示<和>字符,我只需要阅读文件,找到这些标签的实例并做一些魔术.我已经完成了所有这部分工作,但它只是包含多于/少于运算符的任何字符串,似乎无法正常工作.
有任何想法吗?
我正在尝试在Protractor中编写测试,而没有将我的测试高度耦合到页面的特定标记.
例如,给定典型的登录页面,我想测试如果提供的凭据不正确,则会显示错误消息.
我的标记显示该错误的方式是:
<div class="alert alert-danger">
<ul>
<li>Invalid username or password.</li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
这个无序列表也可能包含其他错误 - 所以我不想在列表元素本身上做出断言.在任何情况下,我可能决定不再将错误显示为列表,并且可能希望以其他方式显示错误.
我想要的是能够断言该页面包含:无效的用户名或密码.
我希望能够做到这样的事情:
expect(page.getContents()).to.contain('Invalid username or password.');
Run Code Online (Sandbox Code Playgroud)
但当然这不起作用.
Protractor中是否有任何方法可以让我这样做?
我正在尝试将一个表中的记录插入另一个表中,但也添加了非第二个表中的其他数据.
我正在尝试将insert field1,field2和field3放入tableA.field1和field2来自tableB.但是,field3是我将使用我的应用程序填充的一些额外的任意数据.
INSERT INTO tableA (field1, field2, field3) SELECT (field1, field2) FROM tableB WHERE id='1'
Run Code Online (Sandbox Code Playgroud)
由于上述查询在查询中没有字段,因此此时未插入Field3.我试过了:
INSERT INTO tableA (field1, field2, field3) (SELECT (field1, field2) FROM tableB WHERE id='1'), 'somevalue';
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用.
我不希望将field3设置为NULL或空字符串.我需要填充该列,但是我需要使用来自INSERT范围之外的数据来填充它.在上面的例子中,它应该是'somevalue'.
mysql ×3
javascript ×2
php ×2
testing ×2
e2e-testing ×1
laravel ×1
mocking ×1
phpunit ×1
protractor ×1
string ×1
unit-testing ×1