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/wp01/?p=62#more-62

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

あまり内容のない回になってしまったが、
今回はここまで。

次回は、パッケージのインストールを進めます。

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

Continue reading “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

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