小编Dan*_*Dan的帖子

如何在composer中获取所有已安装软件包的列表以及版本?

我一直在我的本地机器上使用Symfony 2.1进行项目.我已将其上传到我的服务器,但是当我尝试使用Composer安装供应商软件包时,我遇到了很多依赖性错误.据推测,这与最新版本的Symfony刚刚发布和我的composer.json文件没有指定确切的版本号有关.

有什么办法可以快速显示本地机器上所有内容的版本号吗?

这是我的composer.json文件(几天前工作正常):

{
    "name": "symfony/framework-standard-edition",
    "description": "The \"Symfony Standard Edition\" distribution",
    "autoload": {
        "psr-0": { "": "src/" }
    },
    "require": {
        "php": ">=5.3.3",
        "symfony/symfony": "2.1.*",
        "doctrine/orm": ">=2.2.3,<2.4-dev",
        "doctrine/doctrine-bundle": "1.0.*",
        "twig/extensions": "1.0.*",
        "symfony/assetic-bundle": "2.1.*",
        "symfony/swiftmailer-bundle": "2.1.*",
        "symfony/monolog-bundle": "2.1.*",
        "sensio/distribution-bundle": "2.1.*",
        "sensio/framework-extra-bundle": "2.1.*",
        "sensio/generator-bundle": "2.1.*",
        "jms/security-extra-bundle": "1.2.*",
        "jms/di-extra-bundle": "1.1.*",
        "sonata-project/admin-bundle": "*",
        "sonata-project/cache-bundle": "dev-master",
        "sonata-project/doctrine-orm-admin-bundle": "dev-master",
        "stof/doctrine-extensions-bundle": "1.1.x-dev",
        "sonata-project/user-bundle": "dev-master",
        "sonata-project/easy-extends-bundle": "dev-master",
        "friendsofsymfony/user-bundle": "2.0.x-dev",
        "friendsofsymfony/jsrouting-bundle": "*",
        "liip/imagine-bundle": "*",
        "simplethings/form-extra-bundle": "dev-master",
        "antimattr/google-bundle": "dev-master",
        "doctrine/doctrine-fixtures-bundle": "dev-master",
        "genemu/form-bundle": "2.1.*",
        "behat/behat":                  "2.4.*@stable",
        "behat/mink": …
Run Code Online (Sandbox Code Playgroud)

composer-php

227
推荐指数
6
解决办法
14万
查看次数

PHP DateTime四舍五入到最近的10分钟

我检索从MySQL领域的日期时间,但我需要详谈到最近的10分钟.

例如,如果日期时间是2013-11-06 14:00:01,我想将时间返回到2013年6月11日14:10.

最简单的方法是什么?

$datetime = new DateTime($mysqldata);

echo $datetime->format('d/m/Y G:i');
Run Code Online (Sandbox Code Playgroud)

任何建议表示赞赏

谢谢.

php datetime

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

Django使用额外的GET参数测试命名URL

我正在尝试为我正在处理的Django应用程序编写一些测试,但我还没有确定我想要为每个视图使用的确切网址.因此,我在测试中使用了命名网址.

例如,我有一个名为dashboard的网址:

c = Client()
resp = c.get(reverse('dashboard'))
Run Code Online (Sandbox Code Playgroud)

此视图仅适用于已登录的用户.如果当前用户是匿名用户,则应将其重定向到登录页面,该页面也是名为url的登录页面.但是,当它执行此操作时,它使用额外的GET参数来跟踪它刚刚来自的URL,这导致以下结果:

/login?next=dashboard
Run Code Online (Sandbox Code Playgroud)

当我尝试测试此重定向时,由于以下附加参数,它会失败:

# It's expecting '/login' but gets '/login?next=dashboard'
self.assertRedirects(resp, reverse('login'))
Run Code Online (Sandbox Code Playgroud)

显然,如果我将它们硬编码到测试中,它就可以工作:

self.assertRedirects(resp, '/login?next=dashboard')
Run Code Online (Sandbox Code Playgroud)

但是,如果我决定更改仪表板视图的URL,我将不得不更新使用它的每个测试.

有什么我可以做的,以便更容易处理这些额外的参数?

任何建议表示赞赏

谢谢.

testing django reverse

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

在Jinja2中迭代对象?

我在Google App Engine上使用Jinja2.我有一个ListView,它呈现一个通用模板.目前,我不确定我想要显示什么,所以我只想显示模型的每个属性.

有没有办法迭代对象以输出表格单元格中的每一个?

例如:

{% for record in records %}
<tr>
{% for attribute in record %}
<td>{{ attribute }}</td>
{% endfor %}
</tr>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

任何建议表示赞赏 谢谢

google-app-engine jinja2

9
推荐指数
2
解决办法
6305
查看次数

为模型设置数据库?

我正在开发一个基于Laravel 4的站点,该站点可以在多个数据库上运行.我需要在每个从不同数据库中提取记录的请求上运行一个查询.

有没有办法我可以某种方式将这个特定的模型绑定到另一个数据库,所以我可以像往常一样检索它?

$client = Client::find(Session::get('client_id'));
Run Code Online (Sandbox Code Playgroud)

任何建议表示赞赏

谢谢

laravel eloquent laravel-4

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

Symfony 2 - 使用表单时无法设置Sluggable

我试图使用Doctrine Extensions包中的Sluggable行为:

http://gediminasm.org/article/sluggable-behavior-extension-for-doctrine-2

我使用注释在我的实体中设置了一个可缓冲的字段,但是当我使用表单创建实例时,该值不会被设置,这会导致以下错误:

SQLSTATE [23000]:完整性约束违规:1048列'slug'不能为空

这是我的控制器的代码:

        $form = $this->createFormBuilder($section)
                        ->add('title', 'text')
                        ->getForm();

        if ($request->getMethod() == 'POST') {
        $form->bindRequest($request);

            if ($form->isValid()) {

                $em = $this->getDoctrine()->getEntityManager();
                $em->persist($section);
                $em->flush();

                if (empty($id)) {
                    return $this->redirect($this->generateUrl('ContentBundle_section_new'));
                }
                else {
                    return $this->redirect($this->generateUrl('ContentBundle_section_edit', array('id' => $id)));
                }

            }
        }
Run Code Online (Sandbox Code Playgroud)

实体类中的可缓冲字段定义:

    /**
     * @Gedmo\Slug(fields={"title"})
     * @ORM\Column(length=128, unique=true)
     */
    private $slug;
Run Code Online (Sandbox Code Playgroud)

如果我将slug字段添加到formbuilder并手动设置一个值,它可以正常工作,但显然我不想搞乱这个.

有人可以帮忙吗?

谢谢

slug symfony doctrine-orm

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

Django - 一个视图,多个URL?

我对Python和Django都很陌生,并希望尽可能遵循最佳实践.我想整理下面的代码,以便更容易使用.

我正在尝试设置一个可以通过多个URL访问的视图,这些URL提供了将返回和显示查询集的不同参数.

我设置了以下网址:

    url(r'^myrecords/$', login_required(RecordListView.as_view()), {'filter': 'all'}, name='myrecords'),
    url(r'^myrecords/page(?P<page>[0-9]+)/$', login_required(RecordListView.as_view()), {'filter': 'all'}, name='myrecords'),
    url(r'^myrecords/(?P<year>\d{4})/$', login_required(RecordListView.as_view()), {'filter': 'year'}, name='myrecords'),
    url(r'^myrecords/last(?P<months>[0-9]{1,2})months/$', login_required(RecordListView.as_view()), {'filter': 'month'}, name='myrecords'),
Run Code Online (Sandbox Code Playgroud)

然后在我看来我有这样的东西(实际上有几个其他参数,但无论输入的URL如何,这些参数应该保持不变.):

def get_queryset(self): 
    if (self.kwargs['filter'] == 'month'):
        x_months_ago = (datetime.date.today() - 
        datetime.timedelta(int(self.kwargs['months']) * 365 / 12))
        queryset = Record.objects.filter(user=self.request.user, 
        date__gte = x_months_ago.isoformat())
    elif (self.kwargs['filter'] == 'year'):
        queryset = Record.objects.filter(user=self.request.user, date__year=self.kwargs['year'])
    else
        queryset = Record.objects.filter(user=self.request.user)
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎非常混乱.反正我还能把它弄干净吗?是否可以将过滤器参数放在某种数据结构中,然后将它们传递给Record.objects.filter行,而不是多次写出整个事物?

任何建议将不胜感激.

谢谢.

python django views models

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

使用 terraform 时如何指定 api gateway 阶段调用的 lambda 函数?

我正在尝试为具有两个阶段的 AWS API 网关创建 IaC;开发和生产,每个阶段调用不同的 Lambda 函数。

我希望最终结果是:

  • 如果用户进入开发阶段,他们将调用开发 Lambda 函数
  • 如果用户进入生产阶段,他们将调用生产 Lambda 函数

我的代码目前看起来像这样,我删除了一些与问题无关的资源:

resource "aws_apigatewayv2_api" "app_http_api_gateway" {
  name          = "app-http-api"
  protocol_type = "HTTP"
}

resource "aws_apigatewayv2_integration" "app_http_api_integration" {
  api_id                    = aws_apigatewayv2_api.app_http_api_gateway.id
  integration_type          = "AWS_PROXY"
  connection_type           = "INTERNET"
  description               = "Lambda integration"
  integration_method        = "POST"
  # Unsure how to apply stage_variables here
  integration_uri           = aws_lambda_function.app_lambda_development.invoke_arn
  passthrough_behavior      = "WHEN_NO_MATCH"
}

resource "aws_apigatewayv2_route" "app_http_api_gateway_resource_route" {
  api_id    = aws_apigatewayv2_api.app_http_api_gateway.id
  route_key = "ANY /{resource}"
  target    = "integrations/${aws_apigatewayv2_integration.app_http_api_integration.id}"
}

resource "aws_apigatewayv2_stage" "app_http_api_gateway_development" {
  api_id …
Run Code Online (Sandbox Code Playgroud)

aws-lambda terraform aws-api-gateway

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

Django - 将参数传递给内联formset

我正在使用inlineformset_factory中间出勤模型为客户和会话之间的多对多关系创建字段.

我在视图文件中有以下内容:

AttendanceFormset = inlineformset_factory(
    Session,
    Attendance,
    formset=BaseAttendanceFormSet,
    exclude=('user'),
    extra=1,
    max_num=10,
    )

session = Session(user=request.user)
formset = AttendanceFormset(request.POST, instance=session)
Run Code Online (Sandbox Code Playgroud)

并且,因为我需要覆盖其中一个表单字段,我将以下内容添加到formset基类:

class BaseAttendanceFormSet(BaseFormSet):

    def add_fields(self, form, index):
        super(BaseAttendanceFormSet, self).add_fields(form, index)
        form.fields['client'] = forms.ModelChoiceField(
                queryset=Client.objects.filter(user=2))
Run Code Online (Sandbox Code Playgroud)

现在,表单正常工作,但我需要将值传递给formset,以便我可以过滤基于当前用户显示的客户端,而不是仅使用id 2.

有人可以帮忙吗?

任何建议表示赞赏

谢谢.

编辑

对于任何读书的人来说,这对我有用:

def get_field_qs(field, **kwargs):
        if field.name == 'client':
            return forms.ModelChoiceField(queryset=Client.objects.filter(user=request.user))
        return field.formfield(**kwargs)
Run Code Online (Sandbox Code Playgroud)

python django formset

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

删除奏鸣曲包

我在我的Symfony 2应用程序上安装了几个Sonata软件包(用户,管理员等),但在使用它们一段时间后,我觉得我不喜欢它们并想要删除它们.

我已经更新了我的composer.json和AppKernel.php文件,删除了与Sonata有关的任何内容.我还删除了所有相关的路由,配置和安全文件条目.但是,我现在无法更新我的数据库架构.

每当我运行一个时,我会收到以下错误:

[Doctrine\DBAL\DBALException]                                                
  Unknown column type "json" requested. Any Doctrine type that you use has to  
   be registered with \Doctrine\DBAL\Types\Type::addType(). You can get a lis  
  t of all the known types with \Doctrine\DBAL\Types\Type::getTypeMap(). If t  
  his error occurs during database introspection then you might have forgot t  
  o register all database types for a Doctrine Type. Use AbstractPlatform#reg  
  isterDoctrineTypeMapping() or have your custom types implement Type#getMapp  
  edDatabaseTypes(). If the type name is empty you might have a problem …
Run Code Online (Sandbox Code Playgroud)

symfony symfony-sonata

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