laravel5.2上でAngular2のQUICKSTART を動かす方法

(2016年10月21日 一部追記)

気が付いたら、Angular2がリリースされていたので、この機会に、
Angularの学習をはじめてみようと思います。
ちなみに、AngularJS1は、ほぼ触ったことないです。

普通に公式ページのチュートリアルをなぞってもしょうがないので、
laravel上で、Angular2のQUICKSTARTを動かしてみようと思います。

■Angular2 – QUICKSTART
https://angular.io/docs/ts/latest/quickstart.html

完成系は、以下の通り。

■github
https://github.com/dog-ears/angular2-quickstart-on-laravel

環境は、Cloud9で進めます。
では、始めます。

“laravel5.2上でAngular2のQUICKSTART を動かす方法”の続きを読む

【更新履歴】 crud-d-scaffold v1.2.0 – soft delete オプションの追加(2016.08.05)

make:scaffoldのときに、モデルにsoft delete機能をつけられるよう、オプションを追加しました。

追加したオプション

--softdelete
または、
-d

オプションの使い方は以下の通りです。

例)

php artisan make:scaffold Apple --schema="
name:string,
apple_type_id:integer:unsigned
" --seeding --softdelete

■ソースコード
https://github.com/dog-ears/crud-d-scaffold/commit/bac30719c4eaf28fe510dfeea135d4733793ae6c

Laravel5 で httpsサイトを作る方法。および、Cloud9の80ポート問題解決法

Cloud9でLaravel開発をしていると、良く出るのが、Port80問題。

■Cloud9 adds port 80 to Laravel route
https://community.c9.io/t/cloud9-adds-port-80-to-laravel-route/475

よく分からないが、いろいろやってみたところ、
下記2条件を満たしたときに、発生する模様。

  • 現在いるページがhttp://~
  • 相対パス(<a href=”/~”)で書かれているリンクを押した

もともとcloud9はhttps://で動くものなのですが、
Laravelは、デフォルトでhttpのフルパス(<a href=”http://~”)を出力するため、
知らず知らずのうちに、http://に移動して、エラーが出るようです。

ということで、Laravelが常にhttps://で動くようにすればOK。
以下、解決法です。

■Laravel 5 – redirect to HTTPS
http://stackoverflow.com/questions/28402726/laravel-5-redirect-to-https

修正するファイルは2つ

# /app/Http/Middleware/ForceHttps.php
https://github.com/dog-ears/force_https_on_laravel/blob/master/app/Http/Middleware/ForceHttps.php

    public function handle($request, Closure $next)
    {
//        if (!app()->environment('local')) {
            // for Proxies
            Request::setTrustedProxies([$request->getClientIp()]);
            if (!$request->isSecure()) {
                return redirect()->secure($request->getRequestUri());
            }
//        }
        return $next($request);
    }

environmentで判断する機能は、とりあえず不要なので、コメントアウトしてます。

基本的には、$request が sequre(https)かどうか判断して、
httpsでなければ、httpsに変更する。ただそれだけです。

ただ、Cloud9は、仕様上、httpsでリクエストが飛んできても、

$request->isSecure()

に、falseを返してしまうため、このままだと永久ループしてしまいます。
(ここの詳細は、現在不明。プロキシの問題らしいのですが・・・)

そのため、下記の一文を追加します。

Request::setTrustedProxies([$request->getClientIp()]);

クライアントIPは、信頼できるプロキシですよー。と、登録してるっぽいです。

# /app/Http/Kernel.php
https://github.com/dog-ears/force_https_on_laravel/blob/master/app/Http/Kernel.php

$middlewareに以下の文を追加。

\App\Http\Middleware\ForceHttps::class,

これで、全ルートにhttp→httpsが適用され、Port80問題は発生しなくなるはずです。
おためしあれ。

【更新履歴】 crud-d-scaffold v1.1.5 – スキーマ内の改行を無視するように修正(2016.06.09)

make:scaffoldのときに、改行文字をスキーマから削除するように修正しました。

これにより、例えば以下のような改行を含むコマンドでmake:scaffoldできます。

例)

php artisan make:scaffold Apple --schema="
name:string,
apple_type_id:integer:unsigned
" --seeding

■ソースコード
https://github.com/dog-ears/crud-d-scaffold/commit/fcf0a09a0d7707896d4f9bf7ed90a8e96ddd4be1

【更新履歴】 crud-d-scaffold v1.1.4 – delete:scaffoldの、エラーメッセージ修正(2016.06.06)

seedingなしでmake:scaffoldしたアプリを delete:scaffoldしたときに、
エラー表示ではなく、スキップメッセージを表示するように変更しました。

■ソースコード
https://github.com/dog-ears/crud-d-scaffold/commit/9ef7889b23bd90b1ce45a8c09463c769294fedda