web-dev-qa-db-ja.com

Cakephpで画像の完全なURLを取得するにはどうすればよいですか?

アセットフォルダーに「image.jpg」が保存されており、パスが「www.example.com/public」であり、画像への文字列パスのみが必要だとします。どうすれば入手できますか? htmlタグにパス文字列だけが必要なわけではありません。

11
Johnathan Au

さまざまなCakePHPグローバル定数(ROOT、WEBROOT_DIR、WWW_ROOT、CSSなど)を結果なしで試した後、一般的な解決策はアプリケーションwebrootへのパスを返す$ this-> webrootプロパティにあるようです。したがって、上記のさまざまなケースでは、レイアウト、ビュー、または要素に以下が含まれます。

シンプルな画像タグ:

<img src="<?php echo $this->webroot; ?>img/foo.gif" .../ > 

古い方法のテーブルセル内の背景画像:

<td background="<?php echo $this->webroot; ?>img/foo.gif"> 

Type = "image"の入力:

<input type="image" src="<?php echo $this->webroot; ?>img/go_btn.gif" ... /> 
I think webroot always work
22

HtmlHelper::image() のソースコードを見て、このヘルパーが正しいURLを作成する方法を確認してください。わずかに変更されましたが、これが実現方法です。

$imageUrl = $this->assetUrl('image.jpg', array(
    // note: only required if you need the
    // URL -including- http://example.com
    'fullBase'   => true,
    'pathPrefix' => IMAGES_URL
));

Helper :: assetUrl()のソースコードは、次の場所にあります。 https://github.com/cakephp/cakephp/blob/2.3.2/lib/Cake/View/Helper.php#L305 =

8
thaJeztah

CakePHP 3(バージョン3.2.4以降)では、url/imageヘルパーを使用できますが、パスは必要ありません:

$this->Url->image('image.jpg');

または他の資産:

// Outputs /js/app.js
$this->Url->script('my.js');

// Outputs /css/app.css
$this->Url->css('my.css');
6
 
 $ imageUrl = $ this-> Html-> assetUrl( 'image.jpg'、array(
 //注:
が必要な場合にのみ必要// URL -include- http://example.com 
 'fullBase' => true、
 'pathPrefix' => IMAGES_URL 
)); 
 

テーマを使用している場合でも機能します

5
Thiagocfn

次を使用できます。

$this->webroot.'img/abc.jpg'

$ this-> webrootは、アプリの現在のパスを提供します。

2
Pratik
$this->Html->url('/img/image.jpg') // returns /cake/app/img/image.jpg

オプションで、完全なベースURLの例にtrueを渡します。 (mysite.com/cake/app/img/image.jpg

WWW_ROOT . 'img/image.jpg' // full/path/to/webroot/img/image.jpg
2
Ross

CakePHPバージョン3では、URLヘルパーを使用できます。

$this->Url->build('/img/image.jpg');
1
Lars Ebert

CakePHPでは、通常、画像はwebroot/imgフォルダーに保存されます。

これは link に役立ちます。

     HtmlHelper::image(string $path, array $options = array())

パラメーター:

     $path (string) – Path to the image.

     $options (array) – An array of html attributes.

これが役に立つと思ってください。

1
Gunaseelan

cakephp 2.0+によって提供されるこの定数を確認してくださいFULL_BASE_URL

ここをクリック すべてを知る

0
MaNKuR

例: http:// localhost:8080/ninavendas/rhhealth_vendas/pessoa/importar

Cake 3+では次を使用できます:$ this-> request-> webroot

戻り値:/ ninavendas/rhhealth_vendas /

0
Danniel Covo

fullBaseオプション-戻り値ドメイン名を含む完全なURL

$this->Url->image('image.jpg', ['fullBase'=>true]);
0
AndreyP

私は使うだろう

$this->Html->url('/', true).'img/image.jpg';
0
Radu

CakePHP 3

cake\Routing\Routerを使用します。

<img src="<?php echo Router::url('/', true); ?>/img/name.jpg" />
0
Josep

CakePHP 3.5の時点で、最良のオプションは次のとおりです。

$imgUrl = Cake\Routing\Router('/', true) . 'img/' . $imageName;

プラグインスコープ内の場合、$this->webrootは収まりません。

それが誰かを助けることを願っています。

0
sk001