Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 60

0
votes
answers
37 views
+10

Symfony:Webpack Encore Require()不工作?

1

我嘗試使用Symfony Webpack Encore。這是我的默認控制器樹枝中包含的app.js。我不能使用BootstrapDialog。Symfony:Webpack Encore Require()不工作?

require("bootstrap"); 
require("bootstrap-dialog"); 

console.log("Hello"); 

$(function() { 
    console.log('Hello with jquery'); 
}); 

BootstrapDialog.alert('Hello from dialog'); 

輸出:

app.js:6 Hello iam a asset 
10:47:34.793 app.js:13 Uncaught ReferenceError: BootstrapDialog is not defined 
at Object.<anonymous> (app.js:13) 
at Object../app/Resources/public/js/app.js (app.js:28) 
at __webpack_require__ (bootstrap 51bba752688cd28a7b76:54) 
at webpackJsonpCallback (bootstrap 51bba752688cd28a7b76:25) 
at app.js:1 
(anonymous) @ app.js:13 
./app/Resources/public/js/app.js @ app.js:28 
__webpack_require__ @ bootstrap 51bba752688cd28a7b76:54 
webpackJsonpCallback @ bootstrap 51bba752688cd28a7b76:25 
(anonymous) @ app.js:1 
10:47:34.810 app.js:9 Hello with jquery 

NPM列表-g --depth = 0

/usr/local/Cellar/node/9.3.0_1/lib 
├── [email protected] 
├── [email protected] 
├── [email protected] 
└── [email protected] 
沙发
0
0

你試過

var BootstrapDialog = require('bootstrap-dialog'); 

如果你想在室外使用app.js ,您可能需要額外添加mething like

window.BootstrapDialog = BootstrapDialog; 
0
votes
answers
38 views
+10

已登錄的用戶使用「FOSUser Bundle」而不先登出的「角色提升」

1

我正在使用FOSUser捆綁管理我爲我的同事在更大的Symfony項目之上創建的數據導出包的訪問我們公司的。 因此我創建了一個DataExportBundle,可以從Symfony項目中導出定義的數據部分。已登錄的用戶使用「FOSUser Bundle」而不先登出的「角色提升」

的DataexportBundle提供

  • 下載區爲我們的員工,他們可以選擇一個查詢和 在不同的格式,如JSON或CSV獲取數據。
  • 管理員可以管理(添加,編輯和刪除)員工下載區中可供選擇的數據庫查詢的管理區域。

必須保護「數據導出」下載區域,以便只有員工才能訪問它。匿名用戶不允許訪問此區域。 「數據導出」管理區域只能由一些具有額外管理角色的員工訪問。

因此,我啓用了一個角色層次在我的「security.yml」文件:

security: 
    role_hierarchy: 
     ROLE_USER:  [ROLE_USER] 
     ROLE_EDITORIAL: [ROLE_USER, ROLE_EDITORIAL] 
     ROLE_ADMIN:  [ROLE_USER, ROLE_EDITORIAL, ROLE_ADMIN] 
     ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_SUPER_ADMIN] 
    access_control: 
     - { path: ^/dataexport/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/dataexportadmin/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/dataexport/, role: ROLE_EDITORIAL } 
     - { path: ^/dataexportadmin/, role: ROLE_ADMIN } 
     - { path: ^/, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    firewalls: 
     admin_secured: 
      context: site 
      pattern: ^/dataexportadmin/ 
      form_login: 
       provider: fos_userbundle 
       csrf_token_generator: security.csrf.token_manager 
       target_path_parameter: redirect_url 
       login_path: /dataexportadmin/login 
       check_path: /dataexportadmin/login_check 
      logout: 
       path: /dataexportadmin/logout 
      anonymous: true 
     main: 
      context: site 
      pattern: ^/dataexport/ 
      form_login: 
       provider: fos_userbundle 
       csrf_token_generator: security.csrf.token_manager 
       target_path_parameter: redirect_url 
       default_target_path: /dataexport/ 
       login_path: /dataexport/login 
       check_path: /dataexport/login_check 
      logout: 
       path: /dataexport/logout 
      anonymous: true 

正如你所看到的,我也定義了兩個防火牆。通過這樣做,我希望實現已登錄的具有「ROLE_EDITORIAL」角色(不具有「ROLE_ADMIN」角色)的用戶顯示的登錄表單,他可以作爲另一個用戶(必須具有「ROLE_ADMIN」角色集)。

我創建2個用戶:

sudo -u www-data bin/console fos:user:create employee_A 
sudo -u www-data bin/console fos:user:promote employee_A ROLE_EDITORIAL 

sudo -u www-data bin/console fos:user:create employee_B 
sudo -u www-data bin/console fos:user:promote employee_B ROLE_ADMIN 

我的問題是,這種「特權提升」是不行的;相反,當「employee_A」點擊指向「數據導出」管理區域的鏈接時,會顯示「403禁止訪問」頁面。我的計劃是在此處顯示登錄表單。如果登錄(並因此「特權提升」)失敗,則必須保留登錄用戶「employee_A」的角色「ROLE_EDITORIAL」。 我知道更常用的方式是用戶employee_A(ROLE_EDITORIAL)先註銷,然後以用戶employee_B(ROLE_ADMIN)登錄。這樣,捆綁包已經可以工作了,但是我想像我說的那樣實施一種「特權提升」。

我的問題是:如何使用「FOSUser bundle」或任何其他Symfony用戶管理包進行「特權提升」?

文件 「config.yml」:

fos_user: 
    db_driver: orm 
    firewall_name: main 
    user_class: AppBundleEntityFosUser 
    from_email: 
     address: ... 
     sender_name: ... 

文件 「的routing.yml」:

dataexportadmin_login: 
    path: /dataexportadmin/login 
    defaults: { _controller: MyUserBundle:Security:login } 

dataexportadmin_login_check: 
    path: /dataexportadmin/login_check 
    defaults: { _controller: MyUserBundle:Security:check } 

dataexportadmin_logout: 
    path: /dataexportadmin/logout 
    defaults: { _controller: MyUserBundle:Security:logout } 

dataexport_login: 
    path: /dataexport/login 
    defaults: { _controller: MyUserBundle:Security:login } 

dataexport_login_check: 
    path: /dataexport/login_check 
    defaults: { _controller: MyUserBundle:Security:check } 

dataexport_logout: 
    path: /dataexport/logout 
    defaults: { _controller: MyUserBundle:Security:logout } 

dataexport_admin: 
    resource: "@DataexportBundle/Controller/QueryController.php" 
    type:  annotation 
    prefix: /dataexportadmin 
    options: 
     expose: true 

dataexport: 
    resource: "@DataexportBundle/Controller/DefaultController.php" 
    type:  annotation 
    prefix: /dataexport 
    options: 
     expose: true 

my_user: 
    resource: "@MyUserBundle/Controller/" 
    type:  annotation 
    prefix: /

文件 「我/ UserBundle /控制器/ SecurityController.php」

<?php 

namespace MyUserBundleController; 

use FOSUserBundleControllerSecurityController as BaseController; 

class SecurityController extends BaseController 
{ 
    public function renderLogin(array $data) 
    { 
     $requestAttributes = $this->container->get('request_stack')->getCurrentRequest(); 

     if ($requestAttributes->get('_route') === 'dataexportadmin_login') 
     { 
      $template = sprintf('MyUserBundle:Security:adminlogin.html.twig'); 
     } 
     else 
     { 
      $template = sprintf('MyUserBundle:Security:login.html.twig'); 
     } 

     return $this->container->get('templating')->renderResponse($template, $data); 
    } 
} 

兩個Twig模板之間的相關區別是表單標記的「action」屬性:

<form action="{{ path("dataexport_login_check") }}" method="post"> 

vs.

<form action="{{ path("dataexportadmin_login_check") }}" method="post"> 

感謝您的幫助!

沙发
0
0

使用FOS用戶軟件包只有用戶是否通過身份驗證或不是。 如果您登錄另一個用戶,您將更改登錄的用戶。

你可能想改變dataexportadmin安全:

  1. 低ACCESS_CONTROL水平
  2. 路線的形式在你捆綁
  3. 如果證書檢查,在$_SESSION['allowd_to_dataexportadmin_until']
  4. 設置截止日期行動
  5. 在您的導出包中爲每個動作分派一個事件,以檢查當前用戶是否具有AUTHORISED_ROLES(admin)或非空$_SESSION['allowd_to_dataexportadmin_until']或低於new DateTime()

希望這會有所幫助

0
votes
answers
35 views
+10

與symfony的DI容器

0

問題總結與symfony的DI容器

功能測試存根外部服務請求是否有可能注入在我的測試情況下,存根/嘲笑symfony的DI容器來模擬不同的外部API響應?

  • 測試,如果API返回一個錯誤(我想注入一個存根返回一個HTTP 500我的HTTP客戶端類)
  • 測試我的應用程序返回使用2個正確的結果我的應用程序發送電子郵件不同的API作爲源(ⅰ要注入兩個HTTP客戶端作爲存根與特定結果體)

細節

我想要寫的硅石應用功能測試,美是symfony di容器。該應用程序使用多個API作爲後端來滿足客戶端請求。

該代碼注入一個抽象的http客戶端到api客戶端,我可以注入一個http api客戶端存根。

class AwesomeApiClient 
    __construct(MyHttpClient $httpClient); 

class MyApiHttpClient 

這對單元測試非常有用。

現在我想寫功能測試。 我擴展了silex WebTestCase並實現了應用程序初始化。 MyApiHttpClient注入symfony di容器。

現在我想做的事情是這樣的:

# symfony di container does not allow this 
$this->getDiContainer()->set('my_http_client', $myHttpClientStubInstance); 

我想我的配置在每個測試存根,以便我能夠在同一個請求測試不同(例如錯誤,成功)響應。

事情我已經嘗試:

使用setter注入在運行時

$his->getDiContainer()->get('MyApiClient')->setHttpClient($myMock);

的DiContainer返回每次一個新實例我調用get方法。這確實有意義。所以這是行不通的。

重寫HTTP客戶端在DI容器

$this->getDiContainer->set('MyHttpClient', $myHttpClientStub);

不起作用,因爲symfony中不允許在運行時更改的定義。此外,它似乎需要一個定義,而不是一個實例。

PHP-VCR

是否與我的生產代碼的一些變化工作,因爲它在我的捲曲頭回調攪亂HTTP標頭。不適用於其他服務(rabbitmq ...)

沙发
0
1

根據this,應該可以在DI容器中設置模擬。

$client = self::createClient(); 

$serviceA = $this->getMockBuilder('ServiceA') 
    ->disableOriginalConstructor() 
    ->getMock(); 

$client->getContainer()->set('my_bundle.service.a', $serviceA); 
0
votes
answers
30 views
+10

如何在FOSUserBundle 2.0中定義模板引擎?

1

我剛剛從FOS User Bundle 2.0 alpha1移到了穩定版2.0,並且我得到了這個。如何在FOSUserBundle 2.0中定義模板引擎?

利用這種配置:

fos_user: 
    db_driver: orm 
    firewall_name: main 
    user_class: BizTVUserBundleEntityUser 
    from_email: 
     address: "%mailer_user%" 
     sender_name: "%mailer_user%" 
    template: 
     engine: twig 

我得到這個錯誤:

無法識別的選項 「模板」, 「fos_user」 下

而與此配置:

fos_user: 
    db_driver: orm 
    firewall_name: main 
    user_class: BizTVUserBundleEntityUser 
    from_email: 
     address: "%mailer_user%" 
     sender_name: "%mailer_user%" 
# template: 
#  engine: twig 

我反而得到這個錯誤:

必須定義參數「fos_user.template.engine」。

沙发
0
1

找到我的答案在這裏:https://github.com/FriendsOfSymfony/FOSUserBundle/issues/1621

顯然模板引擎已過時,但我稱它在我的安全控制器的自定義行。

0
votes
answers
48 views
+10

Symfony 4 AuthenticationUtils

2

我想創建一個基於symfony.com教程的symfony 4用戶登錄。Symfony 4 AuthenticationUtils

我用下面的代碼使用了基本的services.yaml文件。

https://symfony.com/doc/current/security/form_login_setup.html

public function loginAction(Request $request, Twig_Environment $twigRenderer,AuthenticationUtils $authUtils) 
{ 

    // get the login error if there is one 
    $error = $authUtils->getLastAuthenticationError(); 

    // last username entered by the user 
    $lastUsername = $authUtils->getLastUsername(); 


    return new response($twigRenderer->render('security/login.html.twig', array(
     'last_username' => $lastUsername, 
     'error'   => $error, 
     ) 
    )); 
} 

Errror:

控制器 「應用程序控制器 SecurityController ::在loginAction()」 要求您提供的 「$ authUtils」 參數的值。參數是可爲空的,並且沒有提供空值,沒有提供默認值,或者因爲在這之後有一個非可選參數。

我不知道如何解決這個問題。有人有建議嗎?

+0

我在4.0上遇到了同樣的問題,下面的兩條建議無效。我也嘗試注入構造函數(應該不重要),但結果相同。很奇怪,因爲我在測試3.4時遇到了同樣的問題,但最終得到了它的工作。這些修補程序是否適用於您@Erik –

沙发
0
2

我是同樣的問題..嘗試運行命令:

composer require security 
板凳
0
0

這些添加到您的services.yml解決這個錯誤:

AppBundleController: 
    resource: '../../src/AppBundle/Controller' 
    public: true 
    tags: ['controller.service_arguments'] 

退房這個問題: simple login form using symfony

希望得到這個幫助。

+0

這只是將控制器添加到依賴項注入中。這裏的問題是,'AuthenticationUtils'沒有被注入。可能是因爲安全組件(如@Guhh)建議缺失。 – wawa

地板
0
0

我有點晚了,但仍然在這裏添加其他引用。

請將autowire: true添加到您的控制器服務聲明中。 Symfony會自動爲你注入方法參數。

0
votes
answers
15 views
+10

像Symfony框架中的Laravel開發人員工具欄

0

我已經使用PHP Symfony框架一段時間了。該框架爲開發人員提供了許多有關應用程序行爲的信息,例如響應代碼或查詢時間。像Symfony框架中的Laravel開發人員工具欄

你有沒有試過在laravel框架中實現工具欄?

在此先感謝您的幫助。

+0

請溶液添加如下的答案,而不是更新的問題。 –

沙发
0
0

對於Laravel有https://github.com/barryvdh/laravel-debugbar,有很多有用的信息(查詢,視圖,時序等)

+0

你有沒有使用過? –

+0

@AdamKozlowski是的,很多次 –

+0

是否與symfony中的邏輯相同? –

0
votes
answers
15 views
+10

Symfony的3.4.0找不到任何固定的服務,我使用的Symfony 3.4.0加載

5

,我嘗試加載夾具:Symfony的3.4.0找不到任何固定的服務,我使用的Symfony 3.4.0加載

php bin/console doctrine:fixtures:load 

錯誤而產生的數據時,有什麼不對?

enter image description here

+0

你的燈具在哪裏?哪個目錄?可能會顯示代碼 –

+0

您的燈具應位於例如'src AppBundle DataFixtures ORM MyFixture.php' – baris1892

+0

修補程序:?/ dev/domain.lan/src/ProductBundle/DataFixtures/ORM/ProductFixture.php 網站根目錄:?/ dev/domain.lan/ – Alexander

沙发
0
1

?的/ dev/domain.lan/src目錄/ ProductBundle/DataFixtures/ORM/ProductF ixture.php

<?php 

namespace ProductBundleDataFixturesORM; 

use DoctrineBundleFixturesBundleFixtureInterface; 
use DoctrineCommonPersistenceObjectManager; 
use ProductBundleEntityProduct; 

class ProductFixture implements FixtureInterface 
{ 

    public function load(ObjectManager $manager) 
    { 
     // create 20 products! Bam! 
     for ($i = 0; $i < 20; $i++) { 
      $product = new Product(); 
      $product->setName('Product name' . $i); 
      $manager->persist($product); 
     } 

     $manager->flush(); 
    } 
} 

問題是解決了,有必要增加一個服務:(應用程序/配置/ services.yml)

services: 
    # Product service 
    ProductBundle: 
     resource: '../../src/ProductBundle/*' 
     exclude: '../../src/ProductBundle/{Entity,Repository,Tests}' 
+0

我是你應該把它加到'services.yml'包文件例如:'?/ dev/domain.lan/src/ProductBundle/Resoueces/config/services.yml' – zatamine

板凳
0
1

使用學說捆綁 FixturesBundle 夾具

類ProductFixture擴展夾具實現FixtureInterface

見文檔:http://symfony.com/doc/current/bundles/DoctrineFixturesBundle/index.html

+0

這對我有效。 – Sruj

地板
0
6

我試圖@亞歷山大的解決方案,但對我來說這是行不通的。

我已經通過在services.yml文件包中添加的標籤服務類,Symfony doc解決同樣的問題:

BlogBundle/Resources/config/services.yml

Services: 
... 
# Fixtures services 
    BlogBundleDataFixturesORMPostFixture: 
     tags: [doctrine.fixture.orm] 
... 

BlogBundle/DataFixtures/ORM/PostFixture.php類:

... 
use DoctrineCommonDataFixturesFixtureInterface; 
use DoctrineCommonPersistenceObjectManager; 
... 

class PostFixture implements FixtureInterface 
{ 
public function load(ObjectManager $manager) 
    { 
... 
} 
} 

來源靈感:Synfony doc -> Service container -> The autoconfigure Option

希望能對大家的替代解決方案

+1

此解決方案工作正常。當我從v2.4.1升級到3.0.2時,我開始出現這個錯誤。 – Praveesh

4楼
0
1

在4.0.1我要實現服務配置,顯示的Symfony我DataFixtures文件夾:如果

在配置

/services.yaml

services: 

    ... 

    AppDataFixtures: 
     resource: '../src/DataFixtures' 
     tags: [doctrine.fixture.orm] 

我class IMPLEMENTS FixtureInterface並且沒有這個配置,如果它是EXTENDS Fixture

+0

謝謝。這對我有效。 –

+2

@Dimitry,最好使用這個'resource:'%kernel.project_dir%/ src/DataFixtures'' – Mick

5楼
0
9

該命令查找所有標記爲doctrine.fixture.orm的服務。
有兩種方法可以解決這個問題。

第一招:實現ORMFixtureInterface任何類將自動與此標記註冊。

<?php 

namespace AppBundleDataFixturesORM; 


use DoctrineBundleFixturesBundleORMFixtureInterface; 
use DoctrineCommonPersistenceObjectManager; 

class LoadFixtures implements ORMFixtureInterface 
{ 
    public function load(ObjectManager $manager) 
    { 
     #your code 
    } 
} 

第二個:您需要手動在sevice.yml配置標記doctrine.fixture.ormDataFixtures

services: 
    ... 

    # makes classes in src/AppBundle/DataFixtures available to be used as services 
    # and have a tag that allows actions to type-hint services 
    AppBundleDataFixtures: 
     resource: '../../src/AppBundle/DataFixtures' 
     tags: ['doctrine.fixture.orm'] 
+1

第二個爲我工作。 – Sruj

+1

第二個只有工作。謝謝 –

6楼
0
0

經過長期的研究,找到了解決辦法。 這項工作有:

  • 學說/教義,燈具束:^ 3.0,
  • Symfony的^ 3.3

首先

  • 定義你的燈具。
<?php 
namespace WhereMyFixtureBundleFileFolderIsLocated; 

use DoctrineCommonDataFixturesFixtureInterface; 
use DoctrineCommonPersistenceObjectManager; 
use NaoUserBundleEntityUser; 

class LoadData implements FixtureInterface 
{ 
    /** 
    * Load data fixtures with the passed EntityManager 
    * 
    * @param ObjectManager $manager 
    */ 
    public function load(ObjectManager $manager){ 
     $object = new Entity(); 
     $object->setFoo(bar) 
     ... 

     $manager->persist($object); 

     $manager->flush(); 
    } 
} 

接着,在bundle的service.yml文件或直接在 限定服務 「應用程序/配置/ service.yml」(未建議報告)

# Fixtures service 
your_service.name: 
    class: FullNamespceWithTheClassFixtureName 
    tags: [doctrine.fixture.orm] <-- important 

不要忘了,只是要確定以下

composer du -o or composer dump-autoload -o 

現在嘗試執行你的命令加載數據的燈具。

7楼
0
1

可重複使用包的示例。

的src/Acme公司/包/ UserBundle/DataFixtures/ORM/DataFixtures.php

<?php 
namespace AcmeBundleUserBundleDataFixturesORM; 

use DoctrineBundleFixturesBundleFixture; 
use DoctrineCommonPersistenceObjectManager; 

class DataFixtures extends Fixture 
{ 
    /** 
    * Load data fixtures with the passed EntityManager 
    * 
    * @param ObjectManager $manager 
    */ 
    public function load(ObjectManager $manager) 
    { 
     #your code 
    } 
} 
在app

/配置/ services.yml

AcmeBundleUserBundleDataFixtures: 
    resource: '../../src/Acme/Bundle/UserBundle/DataFixtures/' 

添加您的燈具數據:

php bin/console doctrine:fixtures:load --append 
0
votes
answers
29 views
+10

Symfony路由長度限制

0

是否存在路由長度要求? 例如: 我發現這對Stacko:Symfony路由長度限制

/** 
* @Route("/{shortUrl}", requirements={„shortUrl" : "[a-zA-Z0-9]{8}"}) 
* @method({"GET"}) 
*/ 

我希望{8}它規定只有被稱爲當「SHORTURL」剛好8個字符長,但不起作用。

的理解:
我建了一個網址縮短服務,現在我面臨這個問題:
路由上面,當用戶輸入URL別名我的網站爲他創建並重定向他,這個作品被調用如預期。 該別名由小寫字母和數字(隨機)組成。
但是,當他想要查看他的個人資料(localhost/profile)時,上面的路由被調用而不是配置文件路由,儘管「profile」部分只有7個字符長。

沙发
0
0

試試這個

/** 
* @Route("/{shortUrl}", requirements={"shortLink" : "^[a-zA-Z0-9]{8}$"}) 
* @method({"GET"}) 
*/ 

您需要使用正則表達式符號^和$說「首先」和「結尾」。同樣在您的正則表達式模式中,您忘記了UpperCase匹配中A和Z之間的負號。

+0

謝謝!完美的作品!我相應地改變了我的帖子。我upvoted,但它不算數,因爲我在這裏是新的。 – Moses

+0

如果您想稍後再回來並投票,則沒有問題。 – Mz1907

0
votes
answers
37 views
+10

FOSUserBundle窗體看起來很奇怪

0

我剛剛在我的Symfony項目上配置並準備了FOSUserBundle。但是,當我試圖表明寄存器觀點看起來像這樣:FOSUserBundle窗體看起來很奇怪

enter image description here

登記申請表(默認)應該是這樣的:

Blockquote

所有我配置的是Documentation,我不知道發生了什麼。

這是RegistrationFormType.html.twig從FOSUserBundle:

class RegistrationFormType extends AbstractType 
    { 
     ... 

     /** 
     * {@inheritdoc} 
     */ 
     public function buildForm(FormBuilderInterface $builder, array $options) 
     { 
      $builder 
       ->add('email', LegacyFormHelper::getType('SymfonyComponentFormExtensionCoreTypeEmailType'), array('label' => 'form.email', 'translation_domain' => 'FOSUserBundle')) 
       ->add('username', null, array('label' => 'form.username', 'translation_domain' => 'FOSUserBundle')) 
       ->add('plainPassword', LegacyFormHelper::getType('SymfonyComponentFormExtensionCoreTypeRepeatedType'), array(
        'type' => LegacyFormHelper::getType('SymfonyComponentFormExtensionCoreTypePasswordType'), 
        'options' => array('translation_domain' => 'FOSUserBundle'), 
        'first_options' => array('label' => 'form.password'), 
        'second_options' => array('label' => 'form.password_confirmation'), 
        'invalid_message' => 'fos_user.password.mismatch', 
       )) 
      ; 
     } 
     ... 
    } 
+0

你需要看看https://symfony.com/doc/current/templating/overriding.html – zizoujab

+0

感謝您的回答,正如@ michal-g所說,我必須取消註釋該行。我之前做了壓倒一切的部分來找到這個問題。 – Mich

沙发
0
0

首先,你應該在config.yml 取消註釋行運行轉換組件


translator: { fallbacks: ["en"] }

和(就像在評論中說的)讀了關於壓倒性的意見

+0

就是這樣!它解決了我的問題。我沒有注意到該行,它的工作。謝謝Michal。 – Mich

+0

否 - 問題,但請 - 如果這anwser幫助你,標記anwser爲接受:) –

+0

當然,我剛剛接受它作爲解決方案,檢查它! ;-) – Mich

0
votes
answers
14 views
+10

在symfony3下使用日期和Oracle

0

我們如何比較symfony3下的日期和oracle數據庫?在symfony3下使用日期和Oracle

$q = $this->createQueryBuilder("u")->leftJoin("u.ru", "r") 
    ->leftJoin("u.emp", "e") 
    ->where("(r.a = 2 or r.a =4) and u.dat > :first and u.dat < :last and e.m=:m") 
    ->orderBy("r.id") 
    ->setParameter("matricule", $personne->getMatricule()) 
    ->setParameter("first", $first) 
    ->setParameter("last", $last); 
return $q->getQuery()->getResult(); 

但這不起作用。我有這樣的錯誤

General error: 1861 OCIStmtExecute: ORA-01861: literal does not match format string (extpdo_ocioci_statement.c:148)

+0

我不使用symfony3;但是,這樣的錯誤消息表明您使用了無效的格式掩碼。例如:to_date('2017/12/27','dd.mm.yyyy')會引發該錯誤。您應該使用to_date('2017/12/27','yyyy/mm/dd')。現在,我不知道如何在代碼中使用它(也許它與「first」和「last」有關)? – Littlefoot

+0

我假設symfony像Littlefoot所說的那樣正確地傳遞數據類型。那麼,u.dat是約會嗎? symfony中'$ first'和'$ last'的日期是?如果不是,那麼您正在做一個隱式轉換,並依賴於您的NLS_DATE_FORMAT,您不應該這樣做,因爲它會根據客戶端的情況進行更改。 – Ben

+0

Ben,** u.date **在日期TYPE中。 ** $ first **和** $ last **,我用datetime()聲明它, –

沙发
0
0

J'AI利用CE https://github.com/beberlei/DoctrineExtensions倒拉fonction TO_DATE