1.如何在Vue 2中设置组件道具的默认值?例如,有一个movies可以这种方式使用的简单组件:
<movies year="2016"><movies>
Vue.component('movies', {
props: ['year'],
template: '#movies-template',
...
}
Run Code Online (Sandbox Code Playgroud)
但是,如果用户没有指定year:
<movies></movies>
Run Code Online (Sandbox Code Playgroud)
那么组件将为yearprop提供一些默认值.
2.此外,检查用户是否未设置道具的最佳方法是什么?这是一个好方法:
if (this.year != null) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
或者这个:
if (!this.year) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
?
为什么有些人创建一个返回new static而不是将所有方法设为静态的方法?使用该方法返回新静态的原因是什么?我不是问静态和自我之间有什么区别,或者静态和自我意味着什么.例如,这是一个简单的类:
<?php
class Expression
{
public static function make()
{
return new static;
}
public function find($value)
{
return '/' . $value .'/';
}
public function then($value)
{
return $this->find($value);
}
public function hi($value)
{
return "hi";
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,有一个静态方法make()返回新的静态.然后,有些人会调用其他方法:
$regex = Expression::make()->find('www');
Run Code Online (Sandbox Code Playgroud)
它的目的是什么?我看到在这里我们不使用新的表达式语法,如果这是重点 - 那么为什么他们没有使所有方法成为例如静态?有什么区别,有什么理由让这个方法返回新的静态?
我使用MongoDB PHP v1.3,在我的MongoDB中,我有多个集合:
// COLLECTION NAMES:
- user_1_list_1
- user_1_list_2
- user_1_list_3
...
- user_1_list_55
Run Code Online (Sandbox Code Playgroud)
所有这些集合都具有相同的文档结构:
{
first_name
last_name
phone
}
Run Code Online (Sandbox Code Playgroud)
如何同时查询所有这些集合中的文档?在文档中,说明了如何从一个集合中查询(查找许多)文档:https : //docs.mongodb.com/php-library/v1.3/tutorial/crud/#find-many-documents。
例如,就我而言,它看起来像这样:
$collection_name = "user_1_list_1";
$collection = $this->db->{$collection_name};
$query = [];
$cursor = $collection->find(
$query,
[
'limit' => 10,
'skip' => 0,
'sort' => ['first_name' => 1],
]
);
Run Code Online (Sandbox Code Playgroud)
...但这只会从一个集合中找到文档(在这种情况下,只能从名称为“ user_1_list_1 ” 的集合中找到文档)。
如何从所有这些集合(user_1_list_1,user_1_list_2,user_1_list_3 ...)(结构相同)中查找文档,而不仅仅是从一个特定的文档中查找?这有可能吗?如果是,您将如何做?
我想在运行命令时进行热重新加载npm run watch.(我希望它在使用vue-cli时工作- 当你运行npm run dev命令时:https://vue-loader.vuejs.org/en/features/hot-reload.html).
所以,我已经安装了webpack-dev-server,这就是我尝试过的:
package.json:
{
"name": "webpack-learning",
"version": "1.0.0",
"description": "",
"scripts": {
"dev": "cross-env NODE_ENV=development webpack",
"watch": "cross-env NODE_ENV=development webpack-dev-server --open --hot",
"build": "cross-env NODE_ENV=production webpack --progress --hide-modules"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"babel-core": "^6.24.1",
"babel-loader": "^7.0.0",
"babel-preset-es2015": "^6.24.1",
"cross-env": "^5.0.0",
"css-loader": "^0.28.1",
"extract-text-webpack-plugin": "^2.1.0",
"file-loader": "^0.11.1",
"node-sass": "^4.5.2",
"purifycss-webpack": "^0.6.2",
"sass-loader": "^6.0.5",
"style-loader": "^0.17.0",
"webpack": "^2.4.1", …Run Code Online (Sandbox Code Playgroud) webpack webpack-dev-server webpack-style-loader webpack-hmr webpack-2
我存储了用户时区(数据库表中有timezone列users),如果经过身份验证,我想显示用户时区中所有模型的所有 $dates属性。
我试图找到一种优雅的方式来做到这一点......理想情况下,当 Blade 视图中有这样的东西时:
{{ $post->created_at }}
OR
{{ $post->created_at->format('h:i:s A') }}
Run Code Online (Sandbox Code Playgroud)
...对于经过身份验证的用户,它将自动在他们的时区中。
你会如何处理这件事?
我正在考虑创建一个特质(例如app/Traits/UserTimezoneAware.php)和地点有访问器,将简单地返回Carbon::createFromFormat('Y-m-d H:i:s', $value)->timezone(auth()->user()->timezone)如果当前用户进行身份验证。例如:
<?php
namespace App\Traits;
use Carbon\Carbon;
trait UserTimezoneAware
{
/**
* Get the created_at in the user's timezone.
*
* @param $value
* @return mixed
*/
public function getCreatedAtAttribute($value)
{
if (auth()->check()) {
return Carbon::createFromFormat('Y-m-d H:i:s', $value)->timezone(auth()->user()->timezone);
}
return Carbon::createFromFormat('Y-m-d H:i:s', $value);
}
/**
* Get …Run Code Online (Sandbox Code Playgroud) 我正在开发 Laravel (v5.7) 应用程序,该应用程序将上传的 CSV(带有联系人)转换为数组,然后在调度作业类时将其作为参数传递。
以下是 CSV 文件的示例(支持的格式):
123456,Richard,Smith
654321,John,Doe
Run Code Online (Sandbox Code Playgroud)
上传 (CSV) 文件的处理方式如下:
123456,Richard,Smith
654321,John,Doe
Run Code Online (Sandbox Code Playgroud)
$file_path = $request->file_name->store('contacts');
$file = storage_path('app/' . $file_path);
$contactsIterator = $this->getContacts($file);
$contacts = iterator_to_array($contactsIterator); // Array of contacts from uploaded CSV file
Run Code Online (Sandbox Code Playgroud)
最后,$contacts数组被传递给一个被分派的作业:
ImportContacts::dispatch($contacts);
Run Code Online (Sandbox Code Playgroud)
这个作业类看起来像这样:
protected function getContacts($file)
{
$f = fopen($file, 'r');
while ($line = fgets($f))
{
$row = explode(",", $line);
yield [
'phone' => !empty($row[0]) ? trim($row[0]) : '',
'firstname' => !empty($row[1]) ? trim($row[1]) : '',
'lastname' => !empty($row[2]) ? trim($row[2]) …Run Code Online (Sandbox Code Playgroud) 你能告诉我问题出在哪里吗?我有一个文件GeneratorTest.ph p与以下测试:
<?php
namespace stats\Test;
use stats\jway\File;
use stats\jway\Generator;
class GeneratorTest extends \PHPUnit_Framework_TestCase
{
public function tearDown() {
\Mockery::close();
}
public function testGeneratorFire()
{
$fileMock = \Mockery::mock('\stats\jway\File');
$fileMock->shouldReceive('put')->with('foo.txt', 'foo bar')->once();
$generator = new Generator($fileMock);
$generator->fire();
}
public function testGeneratorDoesNotOverwriteFile()
{
$fileMock = \Mockery::mock('\stats\jway\File');
$fileMock->shouldReceive('exists')
->once()
->andReturn(true);
$fileMock->shouldReceive('put')->never();
$generator = new Generator($fileMock);
$generator->fire();
}
}
Run Code Online (Sandbox Code Playgroud)
这里是文件和生成器类:
File.php:
class File
{
public function put($path, $content)
{
return file_put_contents($path, $content);
}
public function exists($file_path)
{
if (file_exists($file_path)) { …Run Code Online (Sandbox Code Playgroud) 我使用Windows和 PHPStorm IDE 进行 Web 开发。在 Git Bash 中,当我想添加 ( git add .) 或commit- 时,会出现数百个这样的警告:
warning: LF will be replaced by CRLF in ...
The file will have its original line endings in your working directory.
Run Code Online (Sandbox Code Playgroud)
但是如果我在 Git Bash 中执行以下操作:
git config --global core.autocrlf false
Run Code Online (Sandbox Code Playgroud)
不再有这些警告。core.autocrlf设置为有任何风险或缺点false吗?或者我不应该担心?正如我已经写过的,我正在使用 Web 应用程序(php 文件、html 文件、css...稍后将被推送到 GitHub 上的某个远程代表或复制到生产 Linux 服务器...)。对不起,我的英语不好。
如何使用Laravel的filesytem(文件存储)方法存储base64图像?
例如,我可以像这样解码base64图像:
base64_decode($encoded_image);
Run Code Online (Sandbox Code Playgroud)
但是Laravel的所有文件存储方法都可以接受Illuminate\Http\File或Illuminate\Http\UploadedFile实例。
所以我想我必须将base64图像(或解码的base64图像)转换为Illuminate\Http\File或Illuminate\Http\UploadedFile,但是如何?
我对 CSRF 攻击一无所知,但我知道在 Laravel 中我们应该在表单中包含一个隐藏的 CSRF 令牌字段:
<form method="POST" action="/profile">
{{ csrf_field() }}
...
</form>
Run Code Online (Sandbox Code Playgroud)
我们应该将它包含在带有 method="GET" 的表单中吗?
<form method="GET" action="/search">
{{ csrf_field() }}
...
</form>
Run Code Online (Sandbox Code Playgroud)
例如,我有一个带有 method="GET" 的搜索输入(表单) - 所以一切都将在 URL 中可见,包括 CSRF 令牌......这对我来说根本不是问题,但我只是不确定将它放在“GET”表单中有意义吗?
php ×6
laravel ×4
laravel-5 ×2
mongodb-php ×2
base64 ×1
bash ×1
class ×1
csrf ×1
csv ×1
git ×1
github ×1
javascript ×1
mockery ×1
mocking ×1
mongodb ×1
oop ×1
php-carbon ×1
phpstorm ×1
phpunit ×1
static ×1
unit-testing ×1
vue.js ×1
webpack ×1
webpack-2 ×1
webpack-hmr ×1