小编Nic*_*aus的帖子

使用"自动"策略时,使用Doctrine明确设置Id

我的实体使用此注释作为其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.

doctrine doctrine-orm

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

如何将类属性设置为Symfony2表单输入

如何使用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设置为日历

php forms input formbuilder symfony

63
推荐指数
4
解决办法
12万
查看次数

如何在开发环境中强制安装Android App?

我厌倦了卸载而不是重新开发.
有没有办法做adb -force install some.apk?我的意思是这会节省很多时间.每次进入系统 - > apps->每次签名都不同时卸载.

显然调试是一个开发设置,所以我不明白为什么一个人经常需要手动卸载应用程序,这是多少浪费时间?任何可以使开发更容易的东西都会产生更好的代码,而更好的应用程序会带来什么呢?

我在较短的时间内部署到服务器端Java EE服务器.这在命令行上不是问题,因为可以通过卸载然后安装来卸载或替换adb脚本.
然而在日食中它仍然是一种痛苦.有人指出,这主要是签名的变化.是的.但是为什么签名会在开发和调试模式中发生变化,并导致重新安装问题?

android

39
推荐指数
4
解决办法
5万
查看次数

是否可以将MaterialiseCss集成到Bootstrap中

我问自己(未经测试)是否可以将bootstrapmaterializecss集成到同一个项目中

由于两个框架都是出于同样的目的,并且可能在某些类定义中重叠等,所以仍然可以将两个框架组合起来以扩展我的样式选项吗?

css css-frameworks materialize web twitter-bootstrap

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

不推荐使用SF2.6 OptionsResolverInterface和AbstractType:setDefaultOptions

由于在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)

php symfony symfony-2.6

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

SharedPreferences值未更新

我正在尝试更新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)

xml android sharedpreferences

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

Android状态栏覆盖ActionBar

我知道我可以使用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中受益).

谢谢!

android actionbarsherlock android-actionbar

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

Google什么时候会停止支持GCM?

由于Firebase将取代GCM,我问自己Google会支持GCM多长时间?

简而言之:GCM的寿命/支持何时结束?

firebase google-cloud-messaging firebase-cloud-messaging

16
推荐指数
2
解决办法
9327
查看次数

如何在Android上更改默认的ProgressBar圆圈颜色

我目前在通过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)

如果我理解相关信息,则显示的圆圈颜色来自默认颜色(手机上的绿色).我需要改变它!

现在,我无法修改源代码,库本身也不能让我以编程方式设置样式.

有一种方法可以在应用级别更改默认样式或更好地覆盖此特定样式?

谢谢戴维德

geometry android styles overriding android-progressbar

14
推荐指数
4
解决办法
3万
查看次数

如何从symfony2项目中删除供应商?

如何整齐地删除供应商?

我正在安装的SyliusCartBundle需要Stof 1.1.*,我的Symfony项目有Stof 1.2.x. 所以我想删除那个Stof 1.2.

归结为删除:

  • 供应商目录中的stof目录
  • AppKernel行

这里是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)

symfony composer-php

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