小编Per*_*ika的帖子

Vue组件道具的默认值以及如何检查用户是否未设置道具?

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)

javascript vue.js vue-component

111
推荐指数
4
解决办法
8万
查看次数

为什么要返回新静态?(PHP)

为什么有些人创建一个返回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)

它的目的是什么?我看到在这里我们不使用新的表达式语法,如果这是重点 - 那么为什么他们没有使所有方法成为例如静态?有什么区别,有什么理由让这个方法返回新的静态

php oop static class late-static-binding

23
推荐指数
2
解决办法
8543
查看次数

从具有相同文档结构的多个集合中查询(查找许多)文档(MongoDB和PHP)

我使用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_1user_1_list_2user_1_list_3 ...)(结构相同)中查找文档,而不仅仅是从一个特定的文档中查找?这有可能吗?如果是,您将如何做?

php mongodb mongodb-php

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

Webpack:如何设置webpack-dev-server和Hot Reload

我想在运行命令时进行热重新加载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

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

在用户的时区(Laravel)中显示模型上的所有日期

我存储了用户时区(数据库表中有timezoneusers),如果经过身份验证,我想显示用户时区中所有模型的所有 $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)

php laravel php-carbon laravel-5

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

Laravel:无法对​​有效负载进行 JSON 编码。错误代码:5

我正在开发 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)

php csv mongodb-php laravel laravel-queue

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

Mockery和PHPUnit:此模拟对象上不存在方法

你能告诉我问题出在哪里吗?我有一个文件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)

php phpunit unit-testing mocking mockery

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

使用 git config --global core.autocrlf false 是否有任何风险或缺点

我使用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 服务器...)。对不起,我的英语不好。

git bash github core.autocrlf phpstorm

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

Laravel文件存储:如何存储(解码)base64图像?

如何使用Laravel的filesytem(文件存储)方法存储base64图像?

例如,我可以像这样解码base64图像:

base64_decode($encoded_image);
Run Code Online (Sandbox Code Playgroud)

但是Laravel的所有文件存储方法都可以接受Illuminate\Http\FileIlluminate\Http\UploadedFile实例。

所以我想我必须将base64图像(或解码的base64图像)转换为Illuminate\Http\FileIlluminate\Http\UploadedFile,但是如何?

php base64 laravel laravel-filesystem laravel-storage

5
推荐指数
2
解决办法
5962
查看次数

Laravel csrf_field() - 仅适用于 method="POST" 的表单?

我对 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”表单中有意义吗?

csrf laravel laravel-5

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