2016-07-19 4 views
0

php関数から画像を表示するにはどうすればよいですか?php関数から画像を表示するにはどうすればよいですか?

のdefault.htm

<img id="avatar-image" alt="Jason's Image" src="{{ getAvatarImage() }}" /> 

Component.php

public function getAvatarImage() 
{ 
    $var = \System\Models\File::select('disk_name')->where('attachment_id', $avatar_id)->first();  

    if (count($var) == 0) return ""; 

    return $var->path; 
} 

どのように映像ソースを取得し、画像を表示するかを[更新]?

+0

機能を呼び出している間 'echo'を追加して試してみてください:' 'Jason's Image

+0

それは:(' avatar_id'(default.htmの中)から来たん – BEX

+0

を働いていないのですか? – BeetleJuice

答えて

0

まず、getAvatarImageは、staticメソッドではありません。つまり、そのインスタンスを呼び出すことができるようにする必要があります。二番目;イメージを表示するには、戻り値を取得するためにそれをエコーバックする必要があります(呼び出すだけではありません)。これは、ファイルシステムから直接画像を選択するための良い方法ではありません

<?php 
    $avatar_id = 10; // JUST A SIMPLE SIMULATION. YOU SHOULD HAVE A WAY TO GET THE ID 
    $obj  = new ClassContainingGetAvatarImageMethod(); 
    $imgURL  = $obj->getAvatarImage($avatar_id); 
?> 

    <img id="avatar-image" alt="Jason's Image" src="<?php echo $imgURL;?>" /> 

OR

<img id="avatar-image" alt="Jason's Image" src="<?php 
    avatar_id = 10; // WHATEVER THE AVATAR_ID MAY BE 
    $obj  = new ClassContainingGetAvatarImageMethod(); 
    echo $obj->getAvatarImage($avatar_id);?>" /> 
1

まず、この関数が正しいファイルパスを返すことを確認してください。私はそれを考慮するよはい

したがって、何をしようとしているのかを整理するには、Twig environmentのカスタム関数を使用します。

これを行うには、CMS extending twigに機能を登録する必要があります。


STEP 1

プラグイン登録クラスの「機能名」によって割り当てられたカスタム関数の配列を返すregisterMarkupTags()メソッドを作成します。

YourPlugin/Plugin.php

public function registerMarkupTags() { 
    return [ 
    'functions' => [ 
     'getAvatarImage' => [ $this, 'getAvatarImageInternal' ] 
    ] 
    ]; 
} 

STEP 2

我々は$thisにカスタム関数を参照しているため、同じクラスのメソッドを追加します。

YourPlugin/Plugin.php

public function registerMarkupTags() { 
    return [ 
    'functions' => [ 
     'getAvatarImage' => [ $this, 'getAvatarImageInternal' ] 
    ] 
    ]; 
} 

/** 
* Example of registering a Twig function. 
* 
* @return string 
*/ 
public function getAvatarImageInternal() { 
    // Your function body goes here. 
    $path = 'http://app.localhost/storage/image.jpg'; 
    return $path; 
} 

STEP 3

今カスタム関数が登録されていて、小枝環境内で使用することができます。

<img src="{{ getAvatarImage() }}" /> 
関連する問題