laravel開発日記 第2章 第6回 ~ECCUBEっぽいCRUDアプリ用JSの紹介~

前回は、「laravelcollective/html」パッケージをインストールしました。
今回は、ECCUBEっぽいCRUDアプリ用JSを紹介します。

実際のアプリの動作は、以下で確認してください。

■heroku ~ dorothy3
http://dorothy3.herokuapp.com/
ID:user2@dog-ears.net / Pass:pass
または、 ID:user3@dog-ears.net / Pass:pass

今回から、ちょっと独自なやり方で、アプリ実装を進めていきます。
つい先日まで、ECCUBE構築案件にかかりきりだったため、 かなりECCUBEっぽいJSの組み方になってます。

【基本的な考え方】
原則、1ページ、1フォーム。 編集用フォーム、削除用フォームといった分け方はせず、 JSでサブミット時に、フォームのactionとパラメータを修正してから、submitします。
なお、テストサイト、またはgithubで、ソースコードは確認できます。

■github
https://github.com/dog-ears/dorothy3/blob/master/public/js/dorothy.js
キモは、CRUD処理全般を行う以下のfunctionです。

dorothy.fnCRUDaction = function(form, appname, mode, id, arrParam) {

各種mode(index、create、store、show、edit、copy、update、destroy)により、 action,method,パラメータを調整してサブミットします。一つ一つの処理は、難しくないので、 処理の流れをじっくり見てもらえればと思います。追加で、input内で、Enterkey押してもPostしないようにしたり、bootstrap-datepickerの処理も追加してます。

次回から、このJSを使って、 アプリ実装に進みます。

laravel開発日記 第2章 第5回 ~「laravelcollective/html」パッケージのインストール~

前回は、ログインまわりの調整まで進めました。
今回は、「laravelcollective/html」パッケージのインストールを行います。

実際のアプリの動作は、以下で確認してください。

■heroku ~ dorothy3
http://dorothy3.herokuapp.com/
ID:user2@dog-ears.net / Pass:pass
または、 ID:user3@dog-ears.net / Pass:pass

第1章のときにインストールした「illuminate/html 」が、 開発停止になったらしいので、かわりに、「laravelcollective/html」パッケージをインストールします。

■Laravel Collective ~ Forms & HTML
https://laravelcollective.com/docs/5.1/html

上記ページに書いてある通り、 composer.jsonの”require”に、

"laravelcollective/html": "5.1.*"

を追加。 あとは、config/app.phpの2か所を修正すればOKです。

【注意】 phpバージョンが5.4とか古い人は、

"laravelcollective/html": "5.*"

で、ちょっと古いバージョンをインストールする必要があるみたいです。

また、config/app.phpの修正も、phpが5.4系の場合、 最後の「::class」は不要になるみたいです。

ちなみに、今回composer.jsonを見て気づいたのですが、 laravelのバージョンが、5.0.*だったので、 5.*に変更。
↓ phpのバージョンが古い(5.4.27)のため、5.0.33しかインストールできず・・・。
さらに、ヘテムルSSh上でcomposer updateをしたところ、「Out of memory」(メモリ不足)とのエラー発生。 ヘテムルは、メモリ128MB固定。修正不可。 よって、composer.jsonから、 以下を削除しました。

"phpunit/phpunit": "~4.0",
"phpspec/phpspec": "~2.1"

テストができなくなるなぁ・・・。

今後、ヘテムルサーバーが、メモリを増強してくれることに期待します。 ということで、 今回も軽めですが、ここまで。
次回から、本格的にアプリ内部の作業に 入っていきます。

laravel開発日記 第2章 第4回 ~ログイン回りの調整~

前回は、herokuにて、MySQLの設定をしました。
今回は、ログインまわりの調整まで、進めます。

実際のアプリの動作は、以下で確認してください。

■heroku ~ dorothy3
http://dorothy3.herokuapp.com/
ID:user2@dog-ears.net / Pass:pass
または、 ID:user3@dog-ears.net / Pass:pass

では、ユーザーテーブルを修正します。 第1章でやったことの繰り替えしなので、さくさくと。 (参考)

■LARAVEL 開発日記 第4回 ~ マイグレーションとシーディング ~
http://dog-ears.net/wp01/?p=58

(1)ユーザーテーブルにlevel項目を追加

・/database/migrationsに、migrationファイルを追加
・/app/User.phpの$fillable追加 で、いったんコミット。

(2)シーディング

・database/seeds/DatabaseSeeder.php
・app/Http/routes.php

うーん、前回、 シーディングで登録する前に一回登録して・・・ と、意味不明なことをしてますね・・・。 パスワードの暗号化のやり方がわからなかったんだろうなぁ。

■Laravel 5.1 データベース:シーディング
http://readouble.com/laravel/5/1/ja/seeding.html

公式マニュアルを見ると、しっかり書いてますww

'password' => bcrypt('secret'),

で、暗号化されます。 以下、修正 ユーザーの権限は、全部で3段階。

・admin(なんでもできる)
・manager(ユーザー登録はできない。)
・それ以外

と、します。 Admin権限は、ちょっと怖いので、非公開とさせていただきます。

実際には、環境変数を設定し、そこを読みに行くよう修正しています。
Seederの発動は、コンソールをあえて使わず、 routes.phpに記述して、ブラウザから呼び出すことにしました。

Route::get('/test', function(){
    /* UserテーブルのSeeding(2015/11/20) */
    $exitCode = Artisan::call( 'db:seed' );
    dd( $exitCode );
});

上記、アップロード後、 https://dorothy3.herokuapp.com/test/ にアクセスすると、シーディングされます。
※現在は、コメントアウトしてるので、シーディングされません。 次、ログイン画面回りの修正。

(3)初期画面をログイン画面に変更。
(4)ユーザー登録へのリンクを
未ログインのとき、表示

admin権限でログインしているとき、表示
に変更。

基本、前回と同じことをやっているので、ざっくり割愛。

■laravel 開発日記 第5回 ~ ログイン画面の修正 ~
http://dog-ears.net/laravel/20150605/

■laravel 開発日記 第6回 ~ ログイン処理のミドルウェア修正 ~
http://dog-ears.net/laravel/20150608/

あまり内容のない回になってしまったが、 今回はここまで。 次回は、パッケージのインストールを進めます。

laravel開発日記 第2章 第3回 ~herokuにて、MySQLを設定~

前回は、githubとherokuの連携環境を構築まで完了しました。
今回は、herokuにて、MySQLの設定をします。

実際のアプリの動作は、以下で確認してください。

■heroku ~ dorothy3
http://dorothy3.herokuapp.com/
ID:user2@dog-ears.net / Pass:pass
または、 ID:user3@dog-ears.net / Pass:pass “laravel開発日記 第2章 第3回 ~herokuにて、MySQLを設定~”の続きを読む

laravel開発日記 第2章 第2回 ~githubとherokuの連携環境 構築~

前回は、hetemlからgithubにpushするところまで終了しました。
今回は、githubとherokuの連携環境を構築していきます。

実際のアプリの動作は、以下で確認してください。

■heroku ~ dorothy3
http://dorothy3.herokuapp.com/
ID:user2@dog-ears.net / Pass:pass
または、 ID:user3@dog-ears.net / Pass:pass “laravel開発日記 第2章 第2回 ~githubとherokuの連携環境 構築~”の続きを読む