LoginSignup
15
17

More than 5 years have passed since last update.

Laravel5.6で請求書出力アプリを作った

Posted at

概要

毎月請求書出さないといけないけど、Webアプリで出したいなー
けどワザワザ登録するのも面倒だな。今までのフォーマット使いたいし
ということで、(?)
Laravel5.6とphpSpreadseetを使って請求書出力のWebアプリを作ってみました!

環境

CentOS 6.9
Laravel 5.6
Apache 2.2
PHP 7.2

作ったもの

ログイン不要で請求書がパパっと出せます。
こちら ⇒ http://pizza.codelike.info

やったこと

1. laravelプロジェクト作成とライブラリインストール

下記コマンドでプロジェクトを作成したあとにphpspreadseetをインストール


laravel new hoge
cd hoge
composer require phpoffice/phpspreadsheet

laravelの動作確認、下記のコマンドでビルドインサーバーでlaravel起動


php artisan serve

wellcomeページが表示されたらOK!!

2. css / jsライブラリ追加

bowerを使ってライブラリを追加しました。
npmでjquery-uiがうまく動かなかったorz


bower install jquery open-iconic jquery-ui

3. resources/views/配下にviewファイルを書く

トップページ・ヘルプ・規約ページの分けてviewを作りました。
layoutsフォルダに親viewを作っておくと、ヘッダーの情報とかトップのナビメニューがひとつに纏まるのでいい感じです。

4. routes/web.phpファイルを書く

最初はwellcomeページにインデックスが向いていますが、今回作ったコントローラーに向けて、請求書出力の時のメソッド・その他を追加しました。

web.php
Route::get('/', 'TopPageController@topPage')->name('top_page');
Route::post('/', 'TopPageController@topPage')->name('top_page');
Route::post('/', 'TopPageController@output')->name('claim.output');
Route::get('/help', function(){
    return view('help');
});
Route::get('/rule', function(){
    return view('rule');
});

5. app/Http/Controller配下のcontrollerを書く

laravelのartisanコマンドでコントローラーを作った後に編集していきました。
下記コマンドでコントローラーを作れました。

php artisan make:controller TopPageController

メソッドはトップページ表示用と請求書出力アクションの二つのみ。
表示用はviewを返すのみで請求書のほうはphpspreadsheetを使ったロジックをゴニョゴニョしました。

6. webpack.min.js を書く

laravel-mixなるものを初めて使いました。
webpackのラッパーらしいですね!
webpack自体を使ったことがなかったのですが・・・
下記のような感じで羅列して、第二引数に出力ファイルパス(ファイル名含)を書いておけば纏めて一つのファイルにしてくれました。

webpack.mix.js(一部)
mix.scripts([
    'public/library/jquery/dist/jquery.js',
    'public/library/jquery-ui/jquery-ui.js',
・・・・・・

下記でminify化せずに出力先にファイルを出力してくれます。

npm run dev

逆に本番などでminify化したい場合は下記。
これで恥ずかしいjsソースが隠せます(笑)

npm run production

所感

Laravelを業務で使い始めましたが、自分で作ることによってちょっと慣れ親しんだ感がでてきたのでよかったです:smile:
そのうちPDF追加したい。。
Laravel便利なので今後も何か作る時に活用していきます:raised_hand_tone1:

15
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
17