我正在尝试遍历一个数组并为数组中的每个值附加一个前缀.简化版代码:
#!/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)
有什么想法吗?谢谢.
我正在创建一个"日"选择下拉列表.使用selectRange我可以这样做:
{{ Form::selectRange('day', 1, 31, $day) }}
Run Code Online (Sandbox Code Playgroud)
问题是,当表单加载时,如果$day未设置,则1默认选择.是否可以使用selectRange为它们提供具有NULL值的"请选择"选项?
我有一个 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除了仅淡入淡出过渡背景图像本身而不使用背景大小之外,还有什么方法可以使用吗?
我创建了两个扩展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;
我正在使用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组织的.
在研究Database Seeder时,人们常常看到人们DB::table('my_table')->insert(['column' => 'value'])在Seeder课程中使用.我想知道这个明显的约定背后的原因,为什么我应该使用DB::*而不是MyModel::*执行这样的任务.
我正在学习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 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) 考虑这些类:
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)
记住这一点,在声明时总是初始化属性是否是一个好习惯,除非它们实际上需要计算?
我正在测试在 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 类)
我有一个过滤器。我希望此过滤器仅在页面显示 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?
我们的API和GitHub都返回JSON文本内容.
浏览器中的GitHub API以包含在<pre>标签和等宽字体中的形式显示.
但是,我们的API以serif字体显示,没有任何包装器.
当两个响应都是JSON时,为什么它以不同的字体显示?
php ×6
laravel-5 ×4
laravel ×3
laravel-5.1 ×3
laravel-4 ×2
animation ×1
arrays ×1
bash ×1
convention ×1
core-data ×1
css ×1
detach ×1
eloquent ×1
fetch ×1
filter ×1
formbuilder ×1
forms ×1
heredoc ×1
jquery ×1
many-to-many ×1
oop ×1
php-7.3 ×1
request ×1
response ×1
shell ×1
swift ×1
symfony ×1
unit-testing ×1
validation ×1
xcode ×1