Pocket

Laravel5.2での HTMLファサード エラー

Laravelコード内でaタグの代わりに使える、htmlファサード。

{{ Html::link(‘http://test.com’,’test’,[‘id’=>’linkid’]) }}

LaravelでこういうHTMLファサードを使いたいけど、『Class ‘HTML’ not found』って叱られちゃう。そんな時の対処法を自分の備忘録として記載しておきます。説明内の各画像はクリックすると拡大しますので、詳細確認の際にどうぞご利用ください。

PHPのバージョンを確認

Laravelプロジェクトの『composer.json』の中身を確認します。『composer.json』はプロジェクトフォルダの直下にあります。

“require”: {
“php”: “>=5.5.9”,

とありました。phpのバージョン5.5.9以上とのことです。次にサーバー側のPHPのバージョンを確認します。ぼくはロリポップのレンタルサーバーを使ってますので、ロリポップのメニュー『webツール』から『PHP設定』にアクセスしてバージョンを確認していきます。
PHPのバージョン確認

あ、PHPのバージョンが5.4になってますね。composer.jsonに記載の5.5.9を満たすバージョン5.6も選択肢にありましたがバージョン5.6はモジュール版でPHP.iniが触れないようなので、Laravel最低要件の5.4(CG版)にしておきます。5.4未満の方は5.4以上に設定しましょう。

composer.jsonを編集

composer.jsonを開き、まずはPHPのバージョン修正を行います。requireのと
ころを修正していきます。

“php”: “>=5.5.9”,

“php”: “>=5.4”,

上記のように変更します。次に以下を追加。前行末尾の ,(コンマ)を忘れずに。

“laravelcollective/html”: “5.2.*”

最終的にこのようになりました。赤矢印が変更部位です。
composer.jsonの修正 htmlファサード

SSHの設定

『composer.json』設定をアップデートしする前に。サーバーにアップデートアクセスするためのSSHを設定を行います。ロリポップメニューで『webツール』から『SSH』にアクセス。『SSHを有効にする』をクリックします。

詳しい設定は以下のページを参照下さい。記載の中にあるSSHアクセスソフトはTeraTermが簡単でお勧めです。
ロリポップでのSSHの設定方法

Teratermのダウンロード
TeraTermのダウンロード
インストーラー無は.zipをインストーラーありは.exeの方をダウンロードして下さい。

ロリポップでのTeraTerm設定はコチラ
TeraTermの設定

composerでアップデート

上記設定が終わりましたら、早速TeraTermにアクセスしてみます。

-bash-4.1$

画面の表示は上記となってますね?まずは先ほど編集した『composer.json』が格納してあるフォルダ位置まで移動します。以下はロリポップの場合です。

-bash-4.1$ cd web

と入力しエンター。次にLaravelプロジェクト名を入力します。僕の場合は『comtopia』というLaravelプロジェクト名なので以下。

-bash-4.1$ cd comtopia

と入力し、エンター。ここにcomposerをインストールします。

-bash-4.1$ php -r “eval(‘?>’.file_get_contents(‘https://getcomposer.org/installer’));”

完了したら、『composer.json』をアップデートする下記コマンドを入力。

-bash-4.1$ php composer.phar update

暫く待って、-bash-4.1$ が表示されれば完了です。

ロリポップの例を記載しましたが、他のサーバーでもほとんど同じ。
以下コマンドを使ってLaravelプロジェクトのフォルダに辿り着いて下さい。

cd xxx ⇒ xxxフォルダに移動
ls ⇒ 現フォルダ内のファイルを表示
pwd ⇒ 現在のフォルダパスを表示

app.phpの編集

これを実施する前に、前項までのcomposer updateを確実に済ませて下さい。先にapp.phpの改変を実施するとエラーになります。

app.phpはLaravelプロジェクトフォルダの中にある『config』フォルダに格納されています。以下の項目を追加します

‘providers’配列の中に以下を追加します。

Collective\Html\HtmlServiceProvider::class,

‘aliases’配列の中に以下を追加します。

‘Form’ => Collective\Html\FormFacade::class,
‘Html’ => Collective\Html\HtmlFacade::class,

いずれも末尾の ,(コンマ)を忘れずに。これで設定は終了です。HTMLとFORMファサードが使えるようになっているはずです。


パソコンのトラブルはこちらへ
Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です