小编and*_*ber的帖子

Shell:如何在循环数组时附加前缀?

我正在尝试遍历一个数组并为数组中的每个值附加一个前缀.简化版代码:

#!/bin/sh
databases=( db1 db2 db3 )
for i in live_${databases[@]} stage_${databases[@]}
do
    ....
done
Run Code Online (Sandbox Code Playgroud)

但是,它只将前缀添加到数组中的第一个值 - 它循环的值是:

live_db1 db2 db3 stage_db1 db2 db3
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?谢谢.

arrays bash shell

5
推荐指数
1
解决办法
2553
查看次数

Laravel selectRange空白选项

我正在创建一个"日"选择下拉列表.使用selectRange我可以这样做:

{{ Form::selectRange('day', 1, 31, $day) }}
Run Code Online (Sandbox Code Playgroud)

问题是,当表单加载时,如果$day未设置,则1默认选择.是否可以使用selectRange为它们提供具有NULL值的"请选择"选项?

forms formbuilder laravel laravel-4

5
推荐指数
3
解决办法
4131
查看次数

背景尺寸覆盖淡入淡出过渡,无尺寸过渡

我有一个 div,我正在其中更改背景(使用 jQuery)。这些 CSS3 规则允许新的背景图像很好地交叉淡入淡出

transition: background-image 1s ease-in-out;
background: center center no-repeat;
background-size: cover;
-webkit-background-size: cover;
-moz-background-size: cover;
Run Code Online (Sandbox Code Playgroud)

问题是背景尺寸也在变化。

因此,如果它从肖像切换到风景背景图像,例如,在淡入淡出时,图像会被垂直压扁,然后水平拉伸。这可能有点令人恶心。

background-size: cover除了仅淡入淡出过渡背景图像本身而不使用背景大小之外,还有什么方法可以使用吗?

css background-image css-transitions background-size

5
推荐指数
1
解决办法
1889
查看次数

删除Eloquent记录之间的关系

我创建了两个扩展Eloquent(联系人和标签)的类,它们具有ManyToMany关系.我正在尝试创建取消标记联系人的方法,但是无法找到任何文档来告诉如何删除关系表中的条目而不删除标记本身或联系人.

到目前为止,我已经尝试过了

$contact = Contact::find($contact_id);
$tag = $contact->tags->where('id', '=', $id);
$tag->delete();
Run Code Online (Sandbox Code Playgroud)

这只会删除联系人.它有意义,它不起作用,但我不知道还有什么可以尝试.我不想删除联系人或标签,只是两者之间的关系.

我现在也尝试过:

$tag = Tag::find($id);
$tag->contacts->detach($contact_id);
Run Code Online (Sandbox Code Playgroud)

这给了我错误:

Builder.php第2071行中的BadMethodCallException:调用未定义的方法Illuminate\Database\Query\Builder :: detach()

以及

$tag = Tag::find($id);
$contact = $tag->contacts->find($contact_id);
$tag->contacts->detach($contact);
Run Code Online (Sandbox Code Playgroud)

这给了我错误:

Tag.php第34行中的FatalErrorException:调用未定义的方法Illuminate\Database\Eloquent\Collection :: detach()

Contacts和Tags类都扩展了Illuminate\Database\Eloquent\Model;

many-to-many detach eloquent laravel-5 laravel-5.1

4
推荐指数
1
解决办法
7657
查看次数

jQuery Masonry附加没有"增长"动画的项目

我正在使用Masonry并附加一些项目($ boxes是一堆包含div的HTML)

$('#masons').append($boxes).masonry('appended', $boxes, false);
Run Code Online (Sandbox Code Playgroud)

这有效 - >新的div由砌体正确组织.然而,它包括一个恼人的动画,其中框从其位置的中心"增长".我不想要这个动画.我怎么能摆脱它?

我试过了

$('#masons').append($boxes).masonry('reload');
Run Code Online (Sandbox Code Playgroud)

但这似乎根本不起作用 - >新的div不是由Masonry组织的.

jquery animation jquery-masonry

3
推荐指数
1
解决办法
6623
查看次数

DB :: table Vs Eloquent Model - Laravel数据库种子

在研究Database Seeder时,人们常常看到人们DB::table('my_table')->insert(['column' => 'value'])在Seeder课程中使用.我想知道这个明显的约定背后的原因,为什么我应该使用DB::*而不是MyModel::*执行这样的任务.

php convention laravel laravel-5 laravel-5.1

3
推荐指数
1
解决办法
1779
查看次数

在Laravel 5中使用After Validation Hook有什么用?

我正在学习Laravel 5并尝试验证数据库中是否存在电子邮件,然后在失败时添加一些自定义消息.我在Laravel的文档中找到了After Validation Hook

$validator = Validator::make(...);

$validator->after(function($validator) use ($email) {
    if (emailExist($email)) {
        $validator->errors()->add('email', 'This email has been used!');
    }
});

if ($validator->fails()) {
    return redirect('somewhere')
        ->withErrors($validator);
}
Run Code Online (Sandbox Code Playgroud)

但我真的不明白这是什么.因为我可以这样做:

//as above

if (emailExist($email)) {
    $validator->errors()->add('email', 'This email has been used!');
}

//redirect as above
Run Code Online (Sandbox Code Playgroud)

它仍然输出相同的结果.我什么时候应该使用第一个来验证某些东西而不是第二个?

php validation laravel-5 laravel-5.1

3
推荐指数
1
解决办法
2767
查看次数

如何在Core Data swift中获取关系

这是我的核心数据模型:

在此输入图像描述

我有两个实体:Folder <->> Note我想获取文件夹中的所有笔记.

xcode core-data fetch swift iosdeployment

3
推荐指数
1
解决办法
4057
查看次数

正文缩进级别无效(预计缩进级别至少为 4)

我刚刚升级到 PHP 7.3,但出现此错误:

Invalid body indentation level (expecting an indentation level of at least 4)
Run Code Online (Sandbox Code Playgroud)

这是代码:

Invalid body indentation level (expecting an indentation level of at least 4)
Run Code Online (Sandbox Code Playgroud)

php heredoc php-7.3

3
推荐指数
1
解决办法
6228
查看次数

PHP:声明时与实例化时对象属性的初始化

考虑这些类:

class Test_A {

    protected $value;

    public function __construct() {
        $this->value = null;
    }

}

class Test_B {

    protected $value = null;

    public function __construct() {

    }

}
Run Code Online (Sandbox Code Playgroud)

我想知道哪一种被认为是初始化对象属性的最佳实践以及原因。

两者在语法上都是正确的,并且根据 PHP 手册,只有当值不依赖于任何计算时才可以在声明时初始化属性(受保护的 $a = a + b;)。如果它确实依赖于某些计算或运行时值,则应在类构造函数中对其进行初始化。

参考: http: //www.php.net/manual/en/language.oop5.properties.php(参见示例#1)

记住这一点,在声明时总是初始化属性是否是一个好习惯,除非它们实际上需要计算?

php oop

2
推荐指数
1
解决办法
2347
查看次数

如何使上传文件对 UnitTest 无效?

我正在测试在 Laravel 5.1 项目中上传文件。

签入验证方法之一如下所示

//assuming $file is instance of UploadedFile class
if ( ! $file->isValid()) {
    /*add errors and return*/
}
Run Code Online (Sandbox Code Playgroud)

我需要测试这张支票。
问题是:如何创建无效的上传文件?
( UploadedFileextends Symfony\Component\HttpFoundation\Fileclass 扩展SplFileInfophp 类)

php unit-testing symfony laravel-5

2
推荐指数
1
解决办法
855
查看次数

过滤以检测 Response::json 是否已发送

我有一个过滤器。我希望此过滤器仅在页面显示 HTML 时起作用,而不是在 json 或任何其他格式时起作用

App::after(function($request, $response)
{
    if( $request->getMethod() == 'GET' && $request->getRequestFormat() == 'html' ) {
        // do something!
    }
});
Run Code Online (Sandbox Code Playgroud)

在我的控制器函数中,我返回 json 数据:

return Response::json($data);
Run Code Online (Sandbox Code Playgroud)

但是,$request->getRequestFormat()仍然等于“html”,但它不应该等于。

我知道我可以将格式设置为“json”,如下所示:

Request::setRequestFormat('json');
return Response::json($data);
Run Code Online (Sandbox Code Playgroud)

但这似乎是多余的。如果我返回 aResponse::json它应该知道它是 json 而不是 HTML。我怎样才能检测到它是一个Response::json

response request filter laravel laravel-4

1
推荐指数
1
解决办法
3278
查看次数

为什么这两个API在浏览器中的显示方式不同?

我们的API和GitHub都返回JSON文本内容.

浏览器中的GitHub API以包含在<pre>标签和等宽字体中的形式显示.

但是,我们的API以serif字体显示,没有任何包装器.

当两个响应都是JSON时,为什么它以不同的字体显示?

php

-1
推荐指数
1
解决办法
41
查看次数