日別アーカイブ: 2016年5月6日

Laravelの続き。quickstart-basic-masterをやってみる。

あれからちょっと間が開いたが、公式のドキュメントを読んで、チュートリアル的な物をやってみようと思った。

コマンドプロンプトで「php artisan」とやってみて、ヘルプを表示させたら、頭に「Laravel Framework version 5.2.20」と表示されて、Laravel 5.2だということを知った。私が見ていたドキュメントは日本語版の5.1までのやつだったので、どうせなら新しいのを見てやろうということで、5.2のドキュメントを見始めた。そこでチュートリアル的なものを探していたら、「クイックスタート」があったのでやってみることに。どうやらタスクを追加したり削除したりするだけの単純なアプリケーションらしい。

指示に従い、GitHibからソースをダウンロードし、xamppのApacheのhtdocsにフォルダ(laravel)を作ってコピーした。その後、以下のようにしてLaravelのコンポーネントをインストールする。

> cd laravel
> composer install

そして、XAMPPのMySQLで、PHPMyAdminからデータベースを新規作成し、「.env」ファイルでデータベースの設定を上書きしたあと、マイグレーションを実施してみた。

> php artisan migrate

とりあえずテーブルができたようで、実行してみた。ルートに前回見つけた「.htaccess」を置いてみたところ、とりあえず最初の画面の表示がされたが、タスクを追加しようとするとエラーに…

どうやらリダイレクトがうまくいっていないようで、リダイレクトの無限ループを起こしているらしい。ということでリダイレクトの仕組みをやり替える。まず、最初に置いた「.htaccess」を消して、わかりやすいAliasを使ってみる。httpd.confの、alias_moduleのくだりで、以下のように書いてみた。

<IfModule alias_module>
…
  Alias /laravel "C:\xampp\htdocs\laravel\public"
  <Directory "C:\sampp\htdocs\laravel\public">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
      Order allow,deny
    Allow from all
  <Directory>
</IfModule>

やってみたが、やはりトップ画面のみ表示されて、追加しても同じエラーに。いろいろググってみると、publicフォルダの「.htaccess」ファイルを修正しなければならないことが判明。「RewiteEngine On」の下に、以下を追加した。

RewriteRule ^(.*)/$ /laravel/$1 [L,R=301]
RewriteBase /laravel

とりあえずこれでタスクの追加まではうまく動いた。で、今度はタスクを削除させようとクリックすると、アプリケーション名が消えてしまう。生成されたソースを見ると、追加のformタグのactionは「http://localhost/laravel/task/」となっているのに、削除のformタグのactionは「/task/1」などとなっている。これはビューを書き換えればなんとかなりそうなので、以下のように書き換えてみた。

<!-- Task Delete Button -->
<td>
  <form action="{{ url('task')}}/{{ $task->id }}" method="POST">

とりあえず動いてくれた。今日はここまで・・・