小编Unf*_*lux的帖子

IsType <T>和IsType(object,object)抛出IsTypeException

我试图断言方法调用返回的对象是类型List<MyClass>,所以使用xUnit我尝试了以下内容:

var expected = typeof(List<MyClass>);
var actual = typeof(method());

Assert.IsType<List<MyClass>>(actual);
Assert.IsType(expected, actial);
Run Code Online (Sandbox Code Playgroud)

IsTypeException如果我执行以上两种操作都抛出:

var areSameType = expected == actual
Run Code Online (Sandbox Code Playgroud)

areSameTypetrue.那么有什么东西在深入下来,我没有考虑到?

文档:

http://www.nudoq.org/#!/Packages/xunit.extensions/xunit.extensions/Assertions/M/IsType(T) http://www.nudoq.org/#!/Packages/xunit.extensions/ xunit.extensions /断言/ M/IsType

xunit xunit.net

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

为什么AWS EB环境变量显示?日语文本标记

AWS EB(Elastic Beanstalk) 环境变量对于英语文本工作正常,但对于日语文本显示疑问标记,如下图所示。

问题图像

如何解决这个问题,任何帮助将不胜感激。
先感谢您。

environment-variables amazon-web-services

9
推荐指数
0
解决办法
92
查看次数

是的,基于另一个字段的值的验证

我有三个字段:Formik 形式的referenceMonth(string)、openingDate(string)、endingDate(string)。我会在“ openingDatewhen openingDatis not the samemonth as”中添加一个错误referenceMonth

export const VALIDATION_SCHEMA = Yup.object().shape({
    'referenceMonth' : Yup.number().required(YUP_DEFAULT_ERROR_VALUE),
    'openingDate' : Yup.string().when(['referenceMonth', 'openingDate'], {
        is: (referenceMonth: string, openingDate: string) => 
             referenceMonth !== `${new Date(openingDate).getMonth()}`,
        then: Yup.string().required('Select right month')
    }),
})
Run Code Online (Sandbox Code Playgroud)

终端显示:错误:循环依赖,节点为:“openingDate”。

javascript reactjs yup

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

使用通知模式进行域验证

从历史上看,我在对象的构造函数中对对象进行了验证,并在验证失败时抛出异常。例如:

class Name
{
    const MIN_LENGTH = 1;

    const MAX_LENGTH = 120;

    private $value;

    public function __construct(string $name)
    {
        if (!$this->isValidNameLength($name)) {
            throw new InvalidArgumentException(
                sprintf('The name must be between %d and %d characters long', self::MIN_LENGTH, self::MAX_LENGTH)
            );
        }
        $this->value = $name;
    }

    public function changeName(string $name)
    {
        return new self($name);
    }

    private function isValidNameLength(string $name)
    {
        return strlen($name) >= self::MIN_LENGTH && strlen($name) <= self::MAX_LENGTH;
    }
}
Run Code Online (Sandbox Code Playgroud)

虽然我喜欢这种方法,因为我的对象负责强制执行其一致性并确保它始终有效,但我从未对异常的使用过于热衷。虽然有人会争论或反对使用上述异常,但它确实限制了我在对多个对象执行验证时可以返回的验证消息的数量。例如:

class Room
{
    private $name;

    private $description;

    public function __construct(Name $name, Description …
Run Code Online (Sandbox Code Playgroud)

php validation design-patterns domain-driven-design

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

多态关系与每种类型的单独表

我的工作其中有一些类型的数据库(如在UserAppointmentTask它可以有零个或多个等)Notes与每个类型相关联。

我遇到的实现这些关系的可能解决方案是:

  1. 多态关系
  2. 每种类型的单独表

多态关系

许多人认为这是遵循 Active Record 模式的框架最容易实现的解决方案,并且似乎是最常见的实现,我会添加一个表,其数据为morphable

显着

Mynotable_type将允许我区分相关的类型 ( User, Appointment, Task) Note,而 thenotable_id将允许我获取type相关type表中的单个记录。

优点:

  • 易于扩展,可以轻松将更多模型与多态类关联
  • 限制表膨胀
  • 生成一个可供许多其他类使用的类 (DRY)

缺点

  • 随着数据的增长,更多类型会使查询变得更加困难和昂贵
  • 不能有外键
  • 缺乏数据一致性

每种类型的单独表

或者,我可以为每种类型创建一个表,该表仅负责Notes与该类型相关联。该type_id外键可以让我快速获取个人type记录。

用户备注

被许多在线人视为代码异味,许多文章主张避免多态关系而支持替代方案(例如此处此处)。

优点:

  • 允许我们有效地使用外键
  • 高效的数据查询
  • 保持数据一致性

缺点:

  • 增加表膨胀,因为每种类型都需要一个单独的表
  • 结果在多个类中,每个类代表单独的type_notes

想法

多态关系当然是两个实现选项中更简单的一个,但是缺少外键约束并因此潜在的一致性问题感觉是错误的。

每一个表notes的关系(user_notestask_notes外键等)似乎是正确的方式(与设计模式保留),但可能会导致大量的表(除了其他types可有 …

mysql database-design polymorphic-associations database-schema laravel

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

在Neat 2中移除外部排水沟

我已经升级到Bourbon Neat v2,其中包括在容器网格的左侧和右侧添加了排水沟.

整洁的布局截图

v1我可以用block-collapse跨度柱混入吃排水沟无论是元件的侧面,然而,在v2这混入已被删除.有一个网格折叠功能,v2但这并不像我预期的那样完全正常.我目前的标记如下(为简洁而减少):

.wrapper {
  @include grid-container; // columns: 12, gutter: 1rem
  @include grid-visual(lime);
}

.sidebar {
  @include grid-columns(2 of 12);
}

.container {
  @include grid-columns(10 of 12);
}
Run Code Online (Sandbox Code Playgroud)

如何拆除外部排水沟,使第2列和第3列之间的排水沟坍塌,使我的侧栏和容器彼此相邻?

sass neat

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

Symfony 默认语言环境未在 URL 中指定

我想配置 Symfonylocale选项,以便我可以成功访问以下路由:

/route
/{locale}/route
Run Code Online (Sandbox Code Playgroud)

目前,我可以访问/{locale}/route并获得我的观点,但是,/route返回一个No route found for "GET /route". 我的配置如下:

#app/config/parameters.yml
parameters:
    locale: en

#app/config/config.yml
parameters:
    app_locales: en|fr
framework:
    translator: { fallback: "%locale%" }
    default_locale: "%locale%"

#app/config/routing.yml
app:
    resource: '@AppBundle/Controller/'
    type: annotation
Run Code Online (Sandbox Code Playgroud)

我的控制器有以下注释:

#src/AppBundle/Controller/Admin/MyController.php
/**
 *
 * @Route(
 *     "/{_locale}/admin/my",
 *     defaults={"_locale":"%locale%"},
 *     requirements={"_locale":"%app_locales%"}
 *     )
 */
class MyController extends Controller
{
    /**
     * @Route("/", name="admin_my_list")
     * @Method("GET")
     */
    public function listAction()
    {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我特别包含locale,则一切正常。如果我排除locale,我会收到 …

symfony symfony-routing

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

模块构建失败(来自 ./node_modules/vue-loader/dist/index.js):TypeError:无法读取 Object.loader 中未定义的属性“样式”

我正在使用 laravel 和 vuejs 创建事件日历。我正在尝试运行,npm run dev但出现错误

./resources/js/components/CalendarComponent.vue 中的错误模块构建失败(来自 ./node_modules/vue-loader/dist/index.js):TypeError:无法读取 Object.loader 中未定义的属性“样式”(D: \20213\calendar_with_vue\node_modules\vue-loader\dist\index.js:70:34)

javascript laravel vue.js

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

使用 NormalizerAwareTrait 的 Normalizer null 引用

我有两个objectsParent-Child关系。对于每个object我都有一个自定义normalizer,如下所示:

ChildNormalizer.php

use Symfony\Component\Serializer\Normalizer\scalar;

class ChildNormalizer
{  
    public function normalize($object, $format = null, array $context = array())
    {
      return [
        "name" => $object->getName(),
        "age" => $object->getAge(),
        ...
        ];
    }

    public function supportsNormalization($data, $format = null)
    {
        return ($data instanceof Child) && is_object($data);
    }
}
Run Code Online (Sandbox Code Playgroud)

ParentNormalizer.php

use Symfony\Component\Serializer\Encoder\NormalizationAwareInterface;
use Symfony\Component\Serializer\Normalizer\NormalizerAwareTrait;
use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
use Symfony\Component\Serializer\Normalizer\scalar;

class ParentNormalizer implements NormalizerInterface, NormalizationAwareInterface
{
    use NormalizerAwareTrait;

    public function normalize($object, $format = null, array $context = …
Run Code Online (Sandbox Code Playgroud)

serialization symfony symfony-3.2

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

目标类 [App\Http\Controllers\Admin\Category\CategoryController] 不存在

我对这里如何使用命名空间和使用来引用我的CategoryController. 我正在使用 laravel 8。任何指导将不胜感激!

在此输入图像描述

我的路线使用资源,这似乎没问题。网页.php:

namespace App\Http\Controllers\Admin\Category;
Route::get('/admin/categories', [CategoryController::class, 'category'])->name('categories');
Run Code Online (Sandbox Code Playgroud)

我的类别控制器App\Http\Controllers\Admin\Category\CategoryController.php如下所示是我的文件夹结构:

在此输入图像描述

类别控制器.php:

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class CategoryController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth:admin');
    }

    public function category(){
        echo "Hello Category";
    }

}
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-8

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