これからLaravelを始めるという方は過去のエントリーも参考にしてみてください。

PHPフレームワークLaravelやってみた

ダウンロード&インストール

検索すると色々出てきたりしますが、今回は下記を使用してみます。

Laravel 4 – Starter Kit

コマンドラインから「cd」で適当なディレクトリに移動したら、「git clone」でダウンロード。

git clone http://github.com/brunogaspar/laravel4-starter-kit myapp

次にcomposerで関連ライブラリなどをインストールします。

cd myapp
composer install

データベース&設定ファイルの編集

データベースは環境に合わせて設定してください。。

app/config/database.php

    'connections' => array(
        ・・・
        'mysql' => array(
            'driver'    => 'mysql',
            'host'      => 'localhost',
            'database'  => 'laravel_test',
            'username'  => 'user',
            'password'  => 'pass',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),
	

他「app/config/app.php」も設定しておきましょう。

XAMPP(バーチャルホスト)の設定

XAMPPのバーチャルホストを設定します。
PHPのビルトインサーバーを使用する場合は飛ばしてください。

httpd-vhosts.conf

	<VirtualHost *:80>
        ServerName laraveltest.local
        DocumentRoot "C:\myapp\public"
        <Directory "C:\myapp\public">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
            Order Allow,Deny
            Allow from all
            Require all granted
        </Directory>
    </VirtualHost>
	

DocumentRootはアプリーけションの「public」ディレクトリになります。

管理ユーザーの作成

管理ユーザーを作成する独自コマンドがありますので、そいつを使います。

php artisan app:install

ユーザー名やパスワードを聞かれるので適当に入力しましょう。
ちなみにユーザー認証には「Sentry」というライブラリが使われています。

動作確認

ブラウザで「/admin」にアクセスするとログインフォームが表示されるので、さきほど作成したパスワードでログインしましょう。
Bootstrapベースの管理画面が表示されます。

管理画面

日本語のタイトルを入力できるようにする

最初の段階ですでにシンプルなブログが入力できる状態で、SEOも考慮してかslugとかもあります。
しかし、このslugはtitleをベースに自動で設定されるので、日本語で入力するとエラーになってしまうんですね。
とりあえず「BlogController.php」を下記のようにして個別で入力するようにすれば日本語でタイトル付けられます。

app/controllers/BlogController.php

    public function postCreate()
	{
        ・・・
        // Update the blog post data
        $post->title            = e(Input::get('title'));
        //$post->slug             = e(Str::slug(Input::get('title')));
        $post->slug             = e(Input::get('slug'));
        $post->content          = e(Input::get('content'));
        ・・・
    }
    

「postEdit」の部分も同じように変更しておきましょう。

以上です。こういうのを使えば何か始めやすいのかなとか。