我的实体使用此注释作为其ID:
/**
* @orm:Id
* @orm:Column(type="integer")
* @orm:GeneratedValue(strategy="AUTO")
*/
protected $id;
Run Code Online (Sandbox Code Playgroud)
在干净的数据库中,我从旧数据库导入现有记录并尝试保留相同的ID.然后,在添加新记录时,我希望MySQL像往常一样自动增加ID列.
不幸的是,Doctrine2似乎完全忽略了指定的ID.
新解决方案
根据以下建议,以下是首选解决方案:
$this->em->persist($entity);
$metadata = $this->em->getClassMetaData(get_class($entity));
$metadata->setIdGeneratorType(\Doctrine\ORM\Mapping\ClassMetadata::GENERATOR_TYPE_NONE);
$metadata->setIdGenerator(new \Doctrine\ORM\Id\AssignedGenerator());
Run Code Online (Sandbox Code Playgroud)
旧解决方案
因为Doctrine偏离ClassMetaData来确定生成器策略,所以在管理EntityManager中的实体之后必须对其进行修改:
$this->em->persist($entity);
$metadata = $this->em->getClassMetaData(get_class($entity));
$metadata->setIdGeneratorType(\Doctrine\ORM\Mapping\ClassMetadata::GENERATOR_TYPE_NONE);
$this->em->flush();
Run Code Online (Sandbox Code Playgroud)
我刚刚在MySQL上对它进行了测试,它按预期工作,这意味着具有自定义ID的实体与该ID一起存储,而没有指定ID的实体使用了lastGeneratedId() + 1.
如何使用in 将HTML class属性设置为表单?<input>FormBuilderSymfony2
像这样的东西:
->add('birthdate', 'date',array(
'input' => 'datetime',
'widget' => 'single_text',
'attr' => array(
'class' => 'calendar'
)
))
{{ form_widget(form.birthdate) }}
Run Code Online (Sandbox Code Playgroud)
我希望此input字段的属性class设置为日历
我厌倦了卸载而不是重新开发.
有没有办法做adb -force install some.apk?我的意思是这会节省很多时间.每次进入系统 - > apps->每次签名都不同时卸载.
显然调试是一个开发设置,所以我不明白为什么一个人经常需要手动卸载应用程序,这是多少浪费时间?任何可以使开发更容易的东西都会产生更好的代码,而更好的应用程序会带来什么呢?
我在较短的时间内部署到服务器端Java EE服务器.这在命令行上不是问题,因为可以通过卸载然后安装来卸载或替换adb脚本.
然而在日食中它仍然是一种痛苦.有人指出,这主要是签名的变化.是的.但是为什么签名会在开发和调试模式中发生变化,并导致重新安装问题?
我问自己(未经测试)是否可以将bootstrap和materializecss集成到同一个项目中
由于两个框架都是出于同样的目的,并且可能在某些类定义中重叠等,所以仍然可以将两个框架组合起来以扩展我的样式选项吗?
由于在SF2.6中不推荐使用"Symfony\Component\OptionsResolver\OptionsResolverInterface",我试图更新我的FormTypes:
<?php
namespace Xxx\XxxBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
/**
* @uses Symfony\Component\Form\AbstractType
* @uses Symfony\Component\Form\FormBuilderInterface
* @uses Symfony\Component\OptionsResolver\OptionsResolver
* @package Xxx\XxxBundle\Form\Type
*/
class XxxType extends AbstractType
{
/**
* default form builder
*
* @param \Symfony\Component\Form\FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('xxx', 'text') // ...
}
/**
* @param \Symfony\Component\OptionsResolver\OptionsResolver $resolver
*/
public function setDefaultOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(
[
'data_class' => 'xxx',
'option1' => [],
'option2' => 3,
'intention' …Run Code Online (Sandbox Code Playgroud) 我正在尝试更新SharedPreferences的值,这是我的代码:
edit = PreferenceManager.getDefaultSharedPreferences(this).edit();
edit.putString(Settings.PREF_USERNAME+"",txtuser);
edit.putString(Settings.PREF_PASSWORD+"",txtpass);
edit.commit();"
Run Code Online (Sandbox Code Playgroud)
问题是当我访问这个值时,它没有返回更新的值,它给了我一个SharedPreferences的值.
但是当我在XML文件中确认数据时,数据就更新了.
重新启动我的应用程序后,我得到了更新的值.所以它需要我重新启动应用程序以获取更新的值.
那么,一旦它发生变化,如何获得这些更新的值?
提前致谢
这是我的整个代码:
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
ctx=this;
status=PreferenceManager.getDefaultSharedPreferences(this).getString(Settings.PREF_STATUS, Settings.DEFAULT_STATUS);// get old value
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
on(ctx,true);// function will call and value is updated
}
}});
status=PreferenceManager.getDefaultSharedPreferences(this).getString(Settings.PREF_STATUS, Settings.DEFAULT_STATUS);// this should give me a updated value but gives old value
}
public static boolean on(Context context) {
return PreferenceManager.getDefaultSharedPreferences(context).getBoolean(Settings.PREF_ON, Settings.DEFAULT_ON);
}
public static void on(Context context,boolean on) …Run Code Online (Sandbox Code Playgroud) 我知道我可以使用ActionBar叠加,requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY)
并可以在我的屏幕中切换/显示状态栏(通过在FLAG_FULLSCREEN和之间切换FLAG_FORCE_NOT_FULLSCREEN).
这非常有效.但是,当我切换状态栏时,我不希望我的布局移动.
我知道我可以使用以下内容使状态栏"覆盖"(尽管不透明)内容:
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
这也很好,除了(预期的)后果,当使用ActionBar时,ActionBar被切断了一半 - 其中一半基本上处于状态栏之下.
所以我想知道,在这种情况下,有没有办法通过状态栏的高度"移动ActionBar"?
我知道在更糟糕的情况下,我可以使用生活在布局中的自定义视图来执行此操作,但我宁愿不这样做(希望从ActionBar中受益).
谢谢!
由于Firebase将取代GCM,我问自己Google会支持GCM多长时间?
简而言之:GCM的寿命/支持何时结束?
我目前在通过gradle导入的Android项目中使用外部库.
此库显示带有ProgressBar圈的通知栏.这是我在其中找到的代码:
<ProgressBar
android:id="@+id/progress_bar"
android:layout_height="match_parent"
android:layout_marginBottom="4dp"
android:layout_marginTop="4dp"
style="@style/SuperActivityToast_Progress_ProgressBar"/>
Run Code Online (Sandbox Code Playgroud)
相关的风格是这样的:
<style name="SuperActivityToast_Progress_ProgressBar" parent="android:Widget.Holo.ProgressBar">
<item name="android:layout_width">32dp</item>
<item name="android:layout_marginLeft">8dp</item>
</style>
Run Code Online (Sandbox Code Playgroud)
如果我理解相关信息,则显示的圆圈颜色来自默认颜色(手机上的绿色).我需要改变它!
现在,我无法修改源代码,库本身也不能让我以编程方式设置样式.
有一种方法可以在应用级别更改默认样式或更好地覆盖此特定样式?
谢谢戴维德
如何整齐地删除供应商?
我正在安装的SyliusCartBundle需要Stof 1.1.*,我的Symfony项目有Stof 1.2.x. 所以我想删除那个Stof 1.2.
归结为删除:
这里是shell的错误输出:
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Can only install one of: stof/doctrine-extensions-bundle[v1.1.0, 1.2.x-dev
].
- Can only install one of: stof/doctrine-extensions-bundle[v1.1.0, 1.2.x-dev
].
- sylius/order-bundle v0.12.0 requires stof/doctrine-extensions-bundle 1.1.*
-> satisfiable by stof/doctrine-extensions-bundle[v1.1.0].
- sylius/cart-bundle v0.12.0 requires sylius/order-bundle 0.12.*@dev -> sati
sfiable by sylius/order-bundle[v0.12.0].
- Installation request for sylius/cart-bundle 0.12.* -> satisfiable by syliu
s/cart-bundle[v0.12.0].
- Installation request for stof/doctrine-extensions-bundle == …Run Code Online (Sandbox Code Playgroud) android ×4
symfony ×3
php ×2
composer-php ×1
css ×1
doctrine ×1
doctrine-orm ×1
firebase ×1
formbuilder ×1
forms ×1
geometry ×1
input ×1
materialize ×1
overriding ×1
styles ×1
symfony-2.6 ×1
web ×1
xml ×1