2017-03-27 14 views
0

私はTYPO3をかなり新しくしています。エラーのコードを調べていて、非実用的なhrefを見ました。 ブラウザでの検査は、空のhrefを示していますTYPO3 href not working

<a class="download" target="_blank" title="Initiates file download" href=""> here..</a> 

コードは次のとおりです。

<a class="download" target="_blank" title="Initiates file download" href="{location.pdf.originalResource.publicUrl}"><f:translate key="tx_locations_domain_model_location.here" />..</a> 

私はこのlocation.pdf.originalResource.publicUrlを理解していません! {location}を表示すると、次のように表示されます。Locations\Locations\Domain\Model\Location:102 私のフォルダにこのようなパスが見つかりません!! 私は何が欠けているのですか?私は

<f:debug>{location}</f:debug> 

を作るとき

は私が見る:PDF => NULLは、私はそれを修正することができますどのように、私のバックエンドに私はPDFを選択して保存しました。エラーメッセージ UPDATE: 私のPDFフィールドがint(11) unsignedで、 ここでは私のTCAではありません(typo3conf/EXT /場所/設定/ TCA/Location.php)

$GLOBALS['TCA']['tx_locations_domain_model_location'] = array(
.... 
    'columns' => array(
.... 
    'pdf' => array(
     'exclude' => 1, 
     'label' => 'LLL:EXT:locations/Resources/Private/Language/locallang_db.xlf:tx_locations_domain_model_location.pdf', 
     'config' => array (        
      'type' => 'group', 
      'internal_type' => 'file', 
      'allowed' => $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'], 
      'max_size' => $GLOBALS['TYPO3_CONF_VARS']['BE']['maxFileSize'], 
      'uploadfolder' => 'uploads/pics', 
      'show_thumbs' => 1, 
      'size' => 1, 
      'minitems' => 0, 
      'maxitems' => 1 
     ) 
    ), 

ここに私の場所のクラスです:

<?php 
namespace Locations\Locations\Domain\Model; 

/** 
* Location 
*/ 
class Location extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity { 

    /** 
    * title 
    * 
    * @var string 
    */ 
    protected $title = ''; 

    /** 
    * fullTitle 
    * 
    * @var string 
    */ 
    protected $fullTitle = ''; 

    /** 
    * description 
    * 
    * @var string 
    */ 
    protected $description = ''; 

    /** 
    * image 
    * 
    * @var \TYPO3\CMS\Extbase\Domain\Model\FileReference 
    */ 
    protected $image = NULL; 


    /** 
    * secondTitle 
    * 
    * @var string 
    */ 
    protected $secondTitle = ''; 

    /** 
    * secondDescription 
    * 
    * @var string 
    */ 
    protected $secondDescription = ''; 

    /** 
    * address 
    * 
    * @var string 
    */ 
    protected $address = ''; 

    /** 
    * howToGetIt 
    * 
    * @var string 
    */ 
    protected $howToGetIt = ''; 

    /** 
    * thirdTitle 
    * 
    * @var string 
    */ 
    protected $thirdTitle = ''; 

    /** 
    * thirdDescription 
    * 
    * @var string 
    */ 
    protected $thirdDescription = ''; 

    /** 
    * googleMap 
    * 
    * @var string 
    */ 
    protected $googleMap = ''; 


    /** 
    * pdf 
    * 
    * @var \TYPO3\CMS\Extbase\Domain\Model\FileReference 
    */ 
    protected $pdf = NULL; 


    /** 
    * pricingtpl 
    * 
    * @var int 
    */ 
    protected $pricingtpl; 

    /** 
    * category 
    * 
    * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\Locations\Locations\Domain\Model\Category> 
    */ 
    protected $category = NULL; 

    /** 
    * __construct 
    */ 
    public function __construct() { 
     //Do not remove the next line: It would break the functionality 
     $this->initStorageObjects(); 
    } 

    /** 
    * Initializes all ObjectStorage properties 
    * Do not modify this method! 
    * It will be rewritten on each save in the extension builder 
    * You may modify the constructor of this class instead 
    * 
    * @return void 
    */ 
    protected function initStorageObjects() { 
     $this->category = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage(); 
    } 

    /** 
    * Returns the title 
    * 
    * @return string $title 
    */ 
    public function getTitle() { 
     return $this->title; 
    } 


    /** 
    * Sets the image 
    * 
    * @param \TYPO3\CMS\Extbase\Domain\Model\FileReference $image 
    * @return void 
    */ 
    public function setImage(\TYPO3\CMS\Extbase\Domain\Model\FileReference $image) { 
     $this->image = $image; 
    } 


    /** 
    * Sets the pdf 
    * 
    * @param \TYPO3\CMS\Extbase\Domain\Model\FileReference $pdf 
    * @return void 
    */ 
    public function setPdf(\TYPO3\CMS\Extbase\Domain\Model\FileReference $pdf) { 
     $this->pdf = $pdf; 
    } 


    /** 
    * Removes a Category 
    * 
    * @param \Locations\Locations\Domain\Model\Category $categoryToRemove The Category to be removed 
    * @return void 
    */ 
    public function removeCategory(\Locations\Locations\Domain\Model\Category $categoryToRemove) { 
     $this->category->detach($categoryToRemove); 
    } 

    /** 
    * Returns the category 
    * 
    * @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\Locations\Locations\Domain\Model\Category> $category 
    */ 
    public function getCategory() { 
     return $this->category; 
    } 

    /** 
    * Sets the category 
    * 
    * @param \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\Locations\Locations\Domain\Model\Category> $category 
    * @return void 
    */ 
    public function setCategory(\TYPO3\CMS\Extbase\Persistence\ObjectStorage $category) { 
     $this->category = $category; 
    } 



} 
+0

「pdf => NULL」を取得し、BEにファイルを添付した場合、データマッピングが機能しないことを意味します。フィールド 'pdf'と' Location'モデルのTCAを投稿できますか? – undko

+0

hmmm、それは私に少し進んでいます、あなたは何をすべきか教えてくれますか? (TCAとは何ですか?) – bourax

+0

[TCAについて](https://docs.typo3.org/typo3cms/TCAReference/Introduction/Index.html)を少し読んでください!あなたの場合は、ファイル 'EXT:locations/Configuration/TCA/tx_locations_domain_model_location.php'の内容です。 – undko

答えて

0

お客様のモデルLocation.phpファイル。 getPdf()メソッドはsetメソッドのみを使用して定義することはできません。 Location.phpファイルに最初にgetPdf()メソッドを定義してください。

このようにします。あなたはこの<f:debug>{_all}</f:debug>ようなあなたの.htmlファイルをデバッグし、デバッグ出力を見ることができた後

/** 
* Returns the pdf 
* 
* @return \TYPO3\CMS\Extbase\Domain\Model\FileReference $pdf 
*/ 
public function getPdf() { 
    return $this->Pdf; 
} 

+0

私はalredy getPdfを持っていますが、長いコードを持たないようにしました。 – bourax

+0

{_all}これを試して、出力を確認してください。 –

+0

ははい私が試したと私はPDFを参照してください。NULL – bourax

0

流体を<a href=""/>のように使用する必要はありません。<f:link..>,<f:uri..>などは、リンクを生成するための流体文書にあります。

しかし、ファイルをダウンロードするには、このビューヘルパーを使用する必要があります。あなたはファイルのUIDだけを知る必要があります。あなたの場合{location.pdf.uid}ファイルを使用する前に、索引ファイルがあることを確認してください。

<v:resource.file additionalAttributes="{foo: 'bar'}" data="{foo: 'bar'}" identifier="[mixed]" categories="[mixed]" treatIdAsUid="1" treatIdAsReference="1" as="NULL"> 
    <!-- tag content - may be ignored! --> 
</v:resource.file> 
+0

私が {場所}を作るとき、要素PdfはNULLなので、私はlocation.pdf.uidを使うことはできません。データベース内のファイルは索引付けされ、uidを持ちます。だから最初に私はなぜPDFがNULLであるかをチェックする必要があるかどうかを確認する必要があるかどうかを確認する必要があります​​または bourax