小编yiv*_*ivi的帖子

MySQL 1292日期时间值不正确

当我尝试将'2011/03/13 02:53:50.000000000'插入时间戳列时,我收到此错误.如果我将13更改为15,14,12或11,则没有问题.我也试过将/改为-s仍然没有去.

我查看了一些与此错误相关的其他线程但似乎没有适用.

我正在运行5.7.9版本.

mysql mysql-error-1292 sql-timestamp

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

数组之间的总和模式

我很难找到正确的方法来做一些我认为应该使用numpy的微不足道的事情.我有一个数组(1000x1000),我想计算整个数组中特定模式的总和.

例如:

如果我有这个数组,并且想要计算我期望的两个单元格右对角线的总和[7,12,11,8,12,6,11,7](总共8个总和).

在此输入图像描述

我怎样才能做到这一点?

python numpy python-3.x

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

如果Either 可以是Left 或Right 但不能同时是两者,那么为什么它对应于Curry-Howard 对应中的OR 而不是XOR?

当我问这个问题,其中一个答案,现在删除,是在暗示该类型Either对应于XOR,而不是OR,在柯里-霍华德同构的,因为它不能LeftRight在同一时间。

真相在哪里?

haskell boolean-logic functional-programming category-theory curry-howard

8
推荐指数
3
解决办法
324
查看次数

make:entity symfony命令在doctrineHelper.php中给出错误

我正在尝试使用命令行创建一个实体用户php bin/console make:entity

但它一直给我这个错误:

In DoctrineHelper.php line 187:

  Cannot access protected property Doctrine\ORM\Mapping\Driver\AnnotationDriver::$classNames


make:entity [-a|--api-resource] [-b|--broadcast] [--regenerate] [--overwrite] [--] [<name>]
Run Code Online (Sandbox Code Playgroud)

我已按照官方网站说明下载了所有要求https://symfony.com/doc/5.4/doctrine.html

composer.json

In DoctrineHelper.php line 187:

  Cannot access protected property Doctrine\ORM\Mapping\Driver\AnnotationDriver::$classNames


make:entity [-a|--api-resource] [-b|--broadcast] [--regenerate] [--overwrite] [--] [<name>]
Run Code Online (Sandbox Code Playgroud)

php doctrine symfony doctrine-orm composer-php

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

API平台-具有JWT身份验证的Swagger UI

我想在Swagger上添加“授权”按钮,如此处所述:https : //api-platform.com/docs/core/jwt#documenting-the-authentication-mechanism-with-swaggeropen-api

我安装了LexikJWTAuthenticationBundle,它与Curl一起正常工作。但是当我浏览到http:// localhost:8000 / api时,我只会看到{"code":401,"message":"JWT Token not found"}

我想念什么吗?

这是我的security.yaml

security:
    encoders:
        App\Entity\User:
            algorithm: bcrypt
    providers:
        db_provider:
            entity:
                class: App\Entity\User
                property: username
    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        api_login:
            pattern: ^/api/login
            stateless: true
            anonymous: true
            form_login:
                check_path: /api/login_check
                success_handler: lexik_jwt_authentication.handler.authentication_success
                failure_handler: lexik_jwt_authentication.handler.authentication_failure
                require_previous_session: false
        api:
            pattern: ^/api
            stateless: true
            guard:
                authenticators:
                    - lexik_jwt_authentication.jwt_token_authenticator
        main:
            pattern: ^/
            anonymous: ~
            provider: db_provider
            form_login:
                login_path: app_security_login
                check_path: app_security_login
                csrf_token_generator: security.csrf.token_manager
            logout:
                path: /logout
                target: …
Run Code Online (Sandbox Code Playgroud)

symfony lexikjwtauthbundle api-platform.com

7
推荐指数
2
解决办法
2912
查看次数

如何从Google_Service_PeopleService获取数据?

我目前正在使用Google_Client api并想要获取用户名,电话,电子邮件和用户地址.

我设置了这些范围:

'https://www.googleapis.com/auth/plus.login',
'https://www.googleapis.com/auth/user.birthday.read',
'https://www.googleapis.com/auth/user.addresses.read',
'https://www.googleapis.com/auth/user.emails.read',
'https://www.googleapis.com/auth/user.phonenumbers.read'
Run Code Online (Sandbox Code Playgroud)

当我点击google登录时,它会询问正确的权限,然后我会使用Google提供的代码获取访问令牌.

获取我请求的令牌people_service和配置文件数据后,如下所示:

$token = $this->client->fetchAccessTokenWithAuthCode($_GET['code']);
$people_service = new \Google_Service_PeopleService($this->client);
$profile = $people_service->people->get(
             'people/me', 
             array('personFields' => 'addresses,birthdays,emailAddresses,phoneNumbers')
            );
Run Code Online (Sandbox Code Playgroud)

它返回一个Google_Service_PeopleService_Person对象.

但是,当我尝试使用它时,就像getPhoneNumbers()它返回一个 Call to undefined method Google_Service_PeopleService_Person::getNames()错误.

有什么问题,我该怎么办?

php google-client google-client-login

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

我可以声明一个类型化属性,以便它也接受空值吗?

为什么我会收到此错误

未捕获的类型错误:类型化属性 $description 必须是字符串,使用 null

当我尝试分配null给类型属性时?像这样:

new Foo(null);
Run Code Online (Sandbox Code Playgroud)
class Foo
{
  private string $description;

  public function __construct($description)
  {
    $this->description = $description; // <-- Error on this line
  }
}
Run Code Online (Sandbox Code Playgroud)

php types type-hinting

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

如何在容器中安装 Composer 依赖项?

我正在尝试做什么

我正在尝试对这个基于 CodeIgniter 4 构建的 php 应用程序进行 dockerize。该应用程序具有以下依赖项,这些依赖项通常通过 Composer 安装:

"require": {
    "php": "^7.3 || ^8.0",
    "myth/auth": "dev-develop",
    "codeigniter4/framework": "^4.1",
    "codeigniter4/translations" : "^4.0"
},
Run Code Online (Sandbox Code Playgroud)

项目结构组织如下:

docker
    database
    nginx
    php-fpm
    docker-compose.yml
src
    ... app files ...
tests
composer.json
Run Code Online (Sandbox Code Playgroud)

在里面docker-compose.yml我有一个名为的服务php-fpm,它将所有应用程序文件复制到公共/var/www/html目录nginx

php-fpm:
  container_name: boilerplate_app
  build:
    context: ./php-fpm
  volumes:
    - ../src:/var/www/html
Run Code Online (Sandbox Code Playgroud)

我需要做的是使用 Composer 安装应用程序依赖项。

我尝试过的

最初,我想在Dockerfile可用php-fpm文件夹中执行此操作:

FROM php:8.0.2-fpm-alpine

RUN docker-php-ext-install pdo_mysql
RUN docker-php-ext-install mysqli    

# Install Composer
COPY --from=composer /usr/bin/composer …
Run Code Online (Sandbox Code Playgroud)

php composer-php docker docker-compose

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

Symfony 在使用 WSL2 的 Docker 中仍然很慢

TL;DR: 在我读到 WSL2 将用于 Windows(和 Docker)14 个月后,我尝试了 Symfony 5,但它仍然像巧克力球一样慢。

早在 2020 年第一季度,我就了解到 Symfony 和 Docker 在简单的设置环境中非常慢。我们尝试了又尝试,但没有成功:无论我们如何努力,我们都无法获得 Symfony sub 4.000ms。解决方案之一显然是将供应商文件夹移到由 Docker 和 Window 管理的绑定安装之外(可通过 explorer.exe 访问),同样的情况也适用于 var 目录(用于日志和缓存)。

现在是 2021 年第二季度,一年多后,我在 PHP 和 .NET 之间轮换,但我仍然想尝试一下。我下载了我能找到的最新版本的 Windows 版 Docker Desktop,以及 Hyper-V 和 WSL2 支持。我安装了 Microsoft 的支持驱动程序,然后就可以开始了。

一个小时后,在查找了一些有关 Docker 如何实际工作的数据后,我快速部署了 PHP 7.4、NGINX、PostgreSQL、MongoDB 和 Redis 容器/堆栈,并且通过简单的 phpinfo() 和一些随机调用,一切都可以流畅地运行上述数据库。

我安装了全新的 Symfony 5,令我惊讶的是我仍然发现问题仍然存在。甚至没有与数据库建立连接,但它仍然无法运行。很自然地,我将堆栈简化回 PHP 7.4 和 NGINX 堆栈,希望在某个地方我急切地迷失了方向。不幸的是,我猛然醒悟——它仍然很糟糕。

我的设置

# ./docker-compose.yml
version: '3'

services:
  php-fpm:
    build:
      context: ./php-fpm
    volumes:
      - ../src:/var/www
    networks:
      - symfony

  nginx:
    build: …
Run Code Online (Sandbox Code Playgroud)

php symfony docker windows-subsystem-for-linux

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

如何在 Symfony 5.3 的控制器中获取 Session 对象?

我对在 Symfony 5.3 中的控制器中检索当前会话对象的“正确”方法有点困惑。当前文档说将参数键入为SessionInterface。然而,这篇Symfony 博客文章表示SessionInterface已弃用,转而使用RequestStack.

在服务中,很明显我应该注入RequestStack并调用$requestStack->getSession(). 然而,在大多数控制器方法中,我已经注入了Request对象,该对象也有一个getSession()似乎可以工作的方法。

是否可以从Request对象获取会话,或者我应该在控制器方法中注入RequestStackRequest感觉几乎是重复)


一个快速的代码示例:

// in a controller
public function myRoute(Request $request): Response
{
    $session = $request->getSession(); // this works
}

// seems silly to also inject RequestStack when I already have Request
public function myRoute(Request $request, RequestStack $requestStack): Response
{
    $reqestStack->getSession(); // this works
}

// the way current …
Run Code Online (Sandbox Code Playgroud)

php symfony symfony5

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