2016-04-08 21 views
3

Denetleyici eylemi tarafından tanınması için bir bağımsız değişken denetleyicisine nasıl bir argüman iletmeliyim?FluidTypo3 ile denetleyici eylemine argüman nasıl iletilir?

Oluşturucu kullanarak bir uzantı oluşturdum ve şu yöntemi ContentController'a ekledim.

/** 
* @param string $var 
*/ 
public function exampleAction($var = null) { 
    var_dump($var); 
    die; 
} 

Ancak, parametreyi URL'ye nasıl eklerseniz eklerim, sonuç olarak yalnızca "boş" olurum.

Uzantı dizini "test" ve $_EXTKEY. Oluşturucu, registerProviderExtensionKey() çağrıları için "Mac.Test" 'i ext_tables.php'a koydu. Bu yüzden URL'de şu parametreleri denedim:

http://host/index.php?id=1&tx_test_content[var]=abc 
http://host/index.php?id=1&tx_test[var]=abc 
http://host/index.php?id=1&tx_mactest_content[var]=abc 
http://host/index.php?id=1&tx_mactest[var]=abc 
http://host/index.php?id=1&var=abc 

ve diğerleri. Ama boşuna.

Ben sadece boş bir dizi döndürür) (
http://localhost/test2/index.php?id=1&no_cache=1&tx_test_content[member]=foo&tx_test_content[action]=example&tx_test_content[controller]=Content

Ayrıca $ this-> request-> getArguments sonuçlanan f:link.action ViewHelper ile çalıştı, bu yüzden ciddi bir sorun var olmalıdır.

Kullanılan sürümleri:
PHP 5.6.11
TYPO3 6.2.21
vhs 2.4.0
akı 7.2.3
fluidpages 3.3.1
fluidcontent 4.3.3
fluidcontent_core 1.3.0
builder 1.0.0
Başka hiçbir şey yüklü değil (bu davranışı test etmek için yeni bir sistem).

+0

bu önbelleklenemez denetleyici eylem midir? Eğer öyleyse, önceki uygulamalara dayanan herhangi bir argümanı umursamayabilir. – sven

+0

Aramaları '\ TYPO3 \ CMS \ Extbase \ Utility \ ExtensionUtility :: configurePlugin()' '' ext_localconf.php' ve '\ TYPO3 \ CMS \ Extbase \ Utility \ ExtensionUtility :: registerPlugin() ext_tables.php'? Eklenti adı, parametre adı için önemlidir. – Jost

+0

Hayır, maalesef FluidTYPO3 (flux olarak da bilinir) kullanıyorum. Böylece ext_tables.php/ext_localconf.php dosyasında eklenti yapılandırması yoktur. Yoksa bu davada almalı mıyım? Web’de herhangi bir yerden bahsetmedim. –

cevap

2

akışkan bağlantısını kullanarak, bu gibi bağlantı oluşturmak edeceğiz

<f:link.action action="example" controller="controllerName" arguments="{var:'abc'}">Go</f:link.action> 

gibi paragraf geçirebilirsiniz:

http://host/index.php?id=1&tx_[extension_key]_[fe_plugin_key][var]=abc 

Şimdi

$arguments = $this->request->getArguments(); // OR 
$var = $this->request->getArgument('var'); 
extBase

yılında url paragraf nasıl

Yararlı linkler:

+0

Bu deneme için teşekkürler, ama ne yazık ki hiçbir şey değişmiyor. Aslında ilk başta "f: link.action" ViewHelper üzerinden bağlantı oluşturmaya çalıştım ve hiç bir etkisi olmadığından diğer URL parametrelerini denedim. Buna rağmen dikkat etmeliydim. '$ this-> request-> getArguments()' boş bir dizi döndürür. Ve değeri döndürse bile, çok fazla sihir kaybederim (tam yüklü bir modele bir parametrenin çözümlenmesi gibi). Maalesef ipuçlarınız yardım etmiyor :( –

İlgili konular