小编j-g*_*yon的帖子

Symfony - 在控制台命令中模拟登录和安全上下文

我目前正在Symfony(2+)上编写自定义控制台命令.

我的命令调用一个使用安全上下文和依赖注入的服务(检​​查角色).

为了在我的服务中保持安全性检查,我想创建一个特定的用户并在我的控制台命令中记录该用户.

我如何模拟该登录并在我的命令中具有可用的安全上下文?

我的服务检查:

if ($this->securityContext->getToken() == null ||
    !$this->securityContext->isGranted('IS_AUTHENTICATED_FULLY')
)
Run Code Online (Sandbox Code Playgroud)

我的命令是扩展ContainerAwareCommand的经典控制台命令

最好的祝福,

php symfony

13
推荐指数
2
解决办法
6890
查看次数

Doctrine架构更新总是尝试添加NOT NULL

我有一个新的Symfony 2.8安装,带有doctrine和MySQL 5.6堆栈.

执行完之后doctrine:schema:update --force,我可以看到
Database schema updated successfully! "x" queries were executed

这是我的问题:即使我多次执行它,学说总是会发现架构差异.

有了--dump-sql,我可以看到所有这些查询都与:

  • 字符串主键上添加NOT NULL
  • 在datetime字段上添加NOT NULL

但是,当我检查我的数据库时,这些列已经有一个NOT NULL.

以下是单个属性/列的示例:

class MyEntity
{
    /**
     * @ORM\Id
     * @ORM\Column(type="string", length=5, name="cd_key")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
     private $code;
     ...  
Run Code Online (Sandbox Code Playgroud)

这是一个结果SHOW CREATE TABLE my_entity;:

CREATE TABLE `my_entity` (
  `cd_key` varchar(5) COLLATE utf8_unicode_ci NOT NULL,
  `label` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `number` int(11) NOT NULL,
  PRIMARY KEY (`cd_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;
Run Code Online (Sandbox Code Playgroud)

在这里,查询原则尝试使用以下 …

mysql symfony doctrine-orm dbal

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

Symfony2:有条件地创建实体表

我有一个其中定义了实体的包。我希望能够以这种方式配置这个包,这个实体将或不会相关。因此,如果 bundle 配置正确,则不应使用app/console doctrine:schema:updateetc创建实体表,或者应该 - 它应该取决于配置。

如何有条件地“禁用”实体,使其表不会被创建app/console doctrine:schema:update

entity symfony doctrine-orm

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

无法启用AppCenter。在Xamarin.iOS应用程序上崩溃

尝试在现有Xamarin.iOS应用程序上使用新的AppCenter时,AppCenter.Crashes API遇到了一些麻烦。

我遵循“入门”部分,并在AppDelegate.cs中添加以下代码:

using Microsoft.AppCenter;
using Microsoft.AppCenter.Analytics;
using Microsoft.AppCenter.Crashes;

// ...
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
{
    //...
    // App Center
    AppCenter.Start("xxxxxxx-xxxx-xxxx-xxxx", typeof(Analytics), typeof(Crashes));

    return true;
}
Run Code Online (Sandbox Code Playgroud)

我还安装了相应的NuGet软件包(这是我的packages.config中的相应行)

<package id="Microsoft.AppCenter" version="1.5.0" targetFramework="xamarinios10" />
<package id="Microsoft.AppCenter.Analytics" version="1.5.0" targetFramework="xamarinios10" />
<package id="Microsoft.AppCenter.Crashes" version="1.5.0" targetFramework="xamarinios10" />
Run Code Online (Sandbox Code Playgroud)

请注意,如果我禁用AppCenter.Crashes模块:

AppCenter.Start("xxxxxxx-xxxx-xxxx-xxxx", typeof(Analytics));
Run Code Online (Sandbox Code Playgroud)

一切都很好(我可以在App Center后端看到Google Analytics(分析))

但是启用了AppCenter.Crashes模块后,我的应用程序崩溃,控制台中显示以下消息:

11:24:53.521334 +0100   MyApp.iOS   [AppCenter] VERBOSE: +[MSAppDelegateForwarder addTraceBlock:]_block_invoke_2/101 Start buffering traces.
11:24:53.521381 +0100   MyApp.iOS   [AppCenter] DEBUG: +[MSAppDelegateForwarder load]_block_invoke/48 Application delegate forwarder is enabled. It may use swizzling.
11:24:53.521587 +0100 …
Run Code Online (Sandbox Code Playgroud)

c# xamarin.ios mobile-center visual-studio-app-center

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