我一直在我的本地机器上使用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) 我检索从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)
任何建议表示赞赏
谢谢.
我正在尝试为我正在处理的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,我将不得不更新使用它的每个测试.
有什么我可以做的,以便更容易处理这些额外的参数?
任何建议表示赞赏
谢谢.
我在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)
任何建议表示赞赏 谢谢
我正在开发一个基于Laravel 4的站点,该站点可以在多个数据库上运行.我需要在每个从不同数据库中提取记录的请求上运行一个查询.
有没有办法我可以某种方式将这个特定的模型绑定到另一个数据库,所以我可以像往常一样检索它?
$client = Client::find(Session::get('client_id'));
Run Code Online (Sandbox Code Playgroud)
任何建议表示赞赏
谢谢
我试图使用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并手动设置一个值,它可以正常工作,但显然我不想搞乱这个.
有人可以帮忙吗?
谢谢
我对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行,而不是多次写出整个事物?
任何建议将不胜感激.
谢谢.
我正在尝试为具有两个阶段的 AWS API 网关创建 IaC;开发和生产,每个阶段调用不同的 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) 我正在使用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) 我在我的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)