読者です 読者をやめる 読者になる 読者になる

print 'Hello World!';

hogehoge備忘録

Laravel#CSRFトークンチェックを無効化する

環境:Laravel5

CSRFチェックの本体は「app/Http/Middleware/VerifyCsrfToken.php」です。
ここにCSRFチェックを無効にしたいフォームを記載する。

[デフォルト設定]

    public function handle($request, Closure $next){
        return parent::handle($request, $next);
    }

[変更後]

    // CSRFを除外したいURLリスト
    protected $routes = [
        'hoge/fuga',
        'foo/bar',
        'baz/qux',
    ];

    // handleを変更
    public function handle($request, Closure $next){
        if($this->excludedRoutes($request)){
            return $this->addCookieToResponse($request, $next($request));
        }
        return parent::handle($request, $next);
    }

    /*
    * CSRFを除外したいURLであるかどうかをチェックする。
    * @param Request リクエスト
    * @return boolean CSRFを除外したいURLであればtrue
    **/
    protected function excludedRoutes($request){
        foreach($this->routes as $route){
            if ($request->is($route)){ return true; }
        }
    }

#参考サイト

Laravel5.0 CSRFチェックを無効化 - Qiita

 

Laravel#Eloquent ORMによるDB操作#モデルの定義

環境:Laravel5.0

Laravelでデータを扱う方法はQueryBuilder(DB::*)を使う方法と、Eloquent ORMを使う方法がある。Eloquent ORMでは、モデルを作成する必要があり、Query BuilderとDB操作が異なる。

モデルの作成

Eloquent ORMを利用するためには、モデルを定義する必要がある。
Laravel5からは、Modelディレクトリが無くなったので、App直下に作成する。

[記述例]

<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Member extends Model{

    protected $table = 'members';

    public $timestamps = false;

}

#メモ

今回は、timestampが定義されていない既存テーブルを使うので、テーブル名の指定に加え、$timestampsプロパティをfalseに設定している。

#参考サイト

Laravel5でDB操作の基本(Eloquent ORM編) - Qiita

Laravel#データベース接続設定

環境:Laravel5.0

設定ファイル

.env
config/database.php

1..env
データベース名やユーザ名、パスワードの設定等を変更する

DB_HOST=localhost
DB_DATABASE=mydatabase
DB_USERNAME=developer
DB_PASSWORD=secret

2.config/database.php
データベース名、ユーザ名、パスワードの設定等を変更する

'mysql' => [
    'driver'    => 'mysql',
    'host'      => env('DB_HOST', 'localhost'),
    'database'  => env('DB_DATABASE', 'forge'),
    'username'  => env('DB_USERNAME', 'forge'),
    'password'  => env('DB_PASSWORD', ''),
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
    'strict'    => false,
]

#参考サイト

初めてのLaravel 5.1 : (6) データベースの環境設定 – ララ帳

 

Laravel#導入手順

1.Composerをインストール

2.以下のコマンドを実行

composer global require "laravel/installer
composer create-project --prefer-dist laravel/laravel blog

3.設定
アプリケーションのドキュメント/Webルートをpublicディレクトリにする

#参考サイト

インストール 5.2 Laravel

 

Gitの基本

#参考サイト

サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ

Git初心者でも大丈夫!完全無料でGithub PagesにWebページを公開する方法 | 株式会社LIG

Gitコマンド一覧

$ git init
ディレクトリにリポジトリを作成

$ git commit -m “[comment]”
コミットメッセージを同時に指定

$ git status
前回のコミットと比較してどのファイルが変更されたかを表示

$ git log
コミットログを参照する

$ git checkout [branch]
ブランチを変更する

$ git show
最新のコミット内容を表示

$ git clone [repository PATH] [new repository PATH]
リポジトリをコピーする

$ git push [remote repository PATH] [branch]
リモートリポジトリに変更を書き込む

$ git pull [remote repository PATH] [branch]
リモートリポジトリの変更を取り込む

$ git remote
リモートリポジトリの一覧表示

$ git fetch [remote repository]
リモートリポジトリの最新情報を追加する

$ git branch &[new branch]
現在のブランチの確認.&新しいブランチを作成する

#参考サイト

基本的なGitコマンドまとめ - Qiita

 

ZIPダウンロード

# サンプルコード

<?php

//ZIPファイル名
$zipFileName= "kazesawa.zip";

// ストリームに出力
header('Content-Type: application/zip; name="' . $zipFileName . '"');
header('Content-Disposition: attachment; filename="' . $zipFileName . '"');
header('Content-Length: '.filesize($zipFileName));
ob_end_clean(); // 出力バッファをクリア
echo file_get_contents($zipFileName);

?>

# 注意点

header出力後に、出力バッファーのクリアする。

# 参考サイト

zipファイルダウンロードで、zipファイルが壊れてダウンロード出来ない│U2Kの覚え書き