Laravel3 を WebMatrix3 で開発しロリポップで公開する no.8 【Laravel3 から MySQL に接続】

config/application.php の key という項目についてですが no.4 ではパスワード生成ツールなどで作成すると書きましたが、公式手順で作成できることが分かりました。 artisan というコマンドラインプログラムを使います。まずコマンドプロンプトを立ち上げ、現在のプロジェクトのトップディレクトリまで移動します。そして、

php artisan key:generate

と、入力してください。”An application key already exists!” と表示された方は、 application.php の key の値を空文字に変更し、再度コマンドを実行してください。”Configuration updated with secure key!” と表示されれば完了です。

今回は、MySQL との連携を目指して行きたいと思います。MySQL のインストールについては各々にお任せしますが、WebMatrix を入れた際に同時にインストールされる Microsoft Web Platform Installer(以下WebPI)1 から MySQL 5.1 をインストールすることができます。 2013年6月4日現在、ロリポップで提供されている MySQL は5.6 と、結構離れている。この辺りが気になる人は MySQL の公式サイトなり XAMPP なりでインストールする。

WebPI でのインストール方法だが、WebPI を起動した後、検索用テキストボックスに MySQL と入力して検索を始めるとリストの内容が絞られた状態で表示される。MySQL 以外のものも色々表示されるが、その中から MySQL Windows 5.1 という項目を探してインストールする。インストール時に root のパスワードを設定するのでしっかり管理しておく。

インストールが終わったら、このプロジェクト用のDBユーザとデータベースを作成しておく。ロリポップと合わせてもいいし、合わせなくてもいい。今回はロリポップとは別のものを設定する。DBの設定ファイルだが、 config/database.php にある。このファイル内の ‘default’ が (そんなことはないと思うが)‘mysql’ 出ない場合は、 ‘mysql’ に、’connections’ の ‘mysql’ の ‘database’ の値を今回つけたデータベースと同じ名前に、 ‘username’、 ‘password’ も適宜修正する。

DBとの接続がうまく行っているか、Laravel3 上からテーブルを新規作成することでテストとしたいと思います。本来なら Laravel3 のコマンドラインプログラムである artisan を用いて作成したいところですが、(プランによっていは)ロリポップ上でコマンドラインプログラムが作れないので、テスト用コントローラーから Schema クラスを直接用いて作成したいと思います。

controllers 以下に admin.php を作成します。内容は以下のとおりです。

<?php

class Admin_Controller extends Base_Controller
{
    public function action_tablemake()
    {
        Schema::create(\'users\', function($table)
        {
          $table->increments(\'id\');
          
          $table->string(\'email\')->unique();
          $table->text(\'password\');
          
          $table->integer(\'role\');
          
          $table->boolean(\'active\');
          
          $table->timestamps();  
        });

        echo \"finish!\";
    }
}

routes.php に admin コントローラーへのルーティングも追加しましょう。 ブラウザから実行して「finish」と表示されたら完了です。各々でデータベースを確認してください。もしくはもう一度実行すると、既にデータベースが存在するというエラーが表示されると思います。

今回はここまで。

  1. WebMatrixをインストールする際に先ず WebPI がインストールされ、その中の機能で WebMatrix がインストールされる []
カテゴリー: Laravel3, Web, WebMatrix, ロリポップ タグ: , パーマリンク

コメントを残す

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