4

symfonyタスクでパーシャルをレンダリングしようとしていますが、運がありません。私は1.1でただ呼び出すと言っているドキュメントを見つけましget_partial()たが、どうやらそれは1.4ではもうすぐには利用できません。でヘルパーを手動でロードしようとしましsfLoader::getHelpers('Partial');たが、「クラスsfLoaderが見つかりません」というメッセージが表示されます。どんな助けでも大歓迎です。

参考までに、私がやろうとしているのは、統合しているサードパーティのフォーラム(Simple Machines / SMF)に含めるために、すべてのレイアウトで部分的に使用されているグローバルヘッダーから「header.html」というHTMLファイルを生成することです。

4

7 に答える 7

7

最初のロード:

sfContext::getInstance()->getConfiguration()->loadHelpers('Partial');

次に、電話するだけです。

get_partial()
于 2011-12-15T15:24:00.577 に答える
3

タスクのオプションにアプリケーション名を追加することを忘れないでください。この行を探してください:

new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED,'The application name', 'frontend')

今、あなたが必要と$this->configurationするものを返しますsfApplicationConfiguration

于 2010-10-22T09:05:02.467 に答える
3

これでうまくいきます:

//load the Partial helper to be able to use get_partial()
$contextInstance = sfContext::createInstance($this->configuration);
$contextInstance->getConfiguration()->loadHelpers('Partial');
于 2010-10-30T00:13:56.380 に答える
1

sfLoadersymfony1.2で非推奨になりました-1.4APIと、使い慣れたバージョンからのアップグレードヘルプを確認する必要があると思います。これらは、多くの参照が必要なリソースになるためです。

問題を解決する秘訣はloadHelpers()、クラスによって提供されるメソッドをヘルパーにロードすることですsfApplicationConfiguration。タスクは、このメソッドをそのconfigure()メソッドにフックする必要があります。私は自分の前にそれをしていません、気に...

于 2010-04-04T23:17:52.217 に答える
1

無料トライアルnagメールの送信に使用するタスクでパーシャルと呼ばれるだけです。コードは次のとおりです。

//combines the partial with passed variables and puts the results in a string variable
$contextInstance = sfContext::createInstance($this->configuration);
$contextInstance->getConfiguration()->loadHelpers('Partial');

$partial_in_a_string = $contextInstance->getController()
          ->getAction('module_name', 'action_name')
          ->getPartial('module_name/partial_name', array('var_name'=>'var_value'));
于 2011-11-05T14:22:25.790 に答える
0

現在の構成にアクセスするには、

$this->configuration

taskClass :: configure()メソッドでアプリケーションコマンドオプションを定義することもできます(symfony generate:taskを使用してタスククラスを生成した場合は、デフォルトのアプリケーションオプションとしてフロントエンドが必要です)。オプションで、タスクを呼び出すときにcliから--application=appNameを使用してアプリケーションを渡すことができます。

于 2010-04-07T17:57:13.280 に答える
0

configureメソッドにアプリケーションオプションがあることを確認してください。

protected function configure()
{
    $this->addOptions(array(
        new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name', 'frontend')
    ))
    ....

そして、executeメソッドで:

protected function execute($arguments = array(), $options = array())
{
    sfContext::createInstance($this->configuration)->getConfiguration()->loadHelpers('Partial');

このようにして、これらのエラーを防ぎます。

「デフォルト」コンテキストは存在しません。

sfContext :: createInstance()に渡される引数1は、sfApplicationConfigurationのインスタンスである必要があります

于 2019-09-29T19:17:19.140 に答える