【閉店】【ぼっち】本格焼肉カルビ大将

週に一度の焼き肉の日。

南平岸にある本格焼肉カルビ大将

ランチ営業をやっていて、しかもお昼からお酒が飲めるのです。

しかも食べ放題(90分)&飲み放題(100分)。

ランチは比較的お手頃ですが、選べるお肉の種類は少ないです。

牛カルビと豚カルビだけ。

でも、タレが沢山あり、付け合わせや、薬味なども沢山あるので、いろんな味が楽しめます。

お会計は税込み3817円でした。

他にもお肉の種類が異なる食べ放題プランがあります。

我が家からはちょっと遠いですが、気分転換には良いのではないでしょうか。

↑よかったらクリックお願いします。

【Linux】【Laravel】コントローラーからデータベースにアクセスする。

今回はLaravelでコントローラーからモデルを介してデータベースにアクセスするところまでを作ります。

https://github.com/takishita2nd/hotel-mng

まずは、モデルにアクセスして、アレコレするクラスを作成します。

ここでは、repositoryとしていますが、特に名前に決まりはありません。

<?php

namespace App\Repository;

use App\Model\ReserveManagement;

class RegisterManagementRepository
{
    // 予約一覧を取得する
    public function getList()
    {
        return ReserveManagement::all();
    }
}

今回はリスト取得だけの機能だけ実装します。

これをコントローラーで使用します。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Repository\RegisterManagementRepository;

class RegisterManagementController extends Controller
{
    protected $registerManagement;

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
        $this->registerManagement = new RegisterManagementRepository();
    }

    /**
     * Show the Register.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        return view('register.index', ['registerLists' => $this->registerManagement->getList()]);
    }
}

Laravelにはサービスコンテナという機能があるようですが、今回はシンプルにコントローラーのコンストラクタでrepositoryをインスタンス化します。

Viewはシンプルに名前を一覧表示するだけです。

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row">
        <div class="col-md-8 col-md-offset-2">
            <div class="panel panel-default">
                <div class="panel-heading">予約一覧</div>

                <div class="panel-body">
                    <table>
                    @foreach ($registerLists as $list)
                        <tr>
                            <td>これは {{ $list->name }} ユーザーです。</td>
                        </tr>
                    @endforeach
                    </table>
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

最後にルーティングを追加します。

Route::get('/', function () {
    return view('welcome');
});

Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');
Route::get('/management', 'RegisterManagementController@index');

これで、ログイン状態で

http://localhost:8000/management

にアクセスすると、こんな感じで表示されました。

これでモデル・コントローラー・ビュー間のやり取りができるようになりました。

次は、CURD機能を一通り作成してみようと思います。

【完全栄養食】BASE NOODLEを食す。

届きました。

BASE NOODLE!

サブスクリプションで注文して、初回12食分50%オフの2840円でございます。

これ1食で一日に必要な栄養素(炭水化物とナトリウムを除く)を摂取することができます。

つまり、3食食べれば糖質オフの食事になります。

ダイエットにオススメ。

さて、これをどうやって食べようか、と考えたのですが、まずは、ヌードルだからラーメンでしょ、ということで、

ラーメンでございます。

見た目は完全に蕎麦。

しかし、これは失敗でした。

ヌードル本体に味がしっかりついているので、スープが完全にその味に負けてます。

あまり合いません。

スープよりは、例えば、焼きそばやパスタのソースに合うかもしれません。

ということで、2食目はこうしました。

BASE NOODLEの肉味噌あえ

これくらいの味付けで十分なんですよ。

BASE NOODLE自体に味がしっかり付いてますからね。

そして、3食目。

BASE NOODLEのラーメンサラダ

ドレッシングは冷蔵庫に眠っていたおろししゃぶしゃぶのタレを使いました。

これでも十分美味しいです。

マヨネーズとか、普通のサラダドレッシングでも美味しいかも。

しかし、ラーメンサラダ考えた北海道民、天才だな。

あと、一食分が結構量あるので、かなり腹持ちは良いです。

来週から水曜日は完全栄養食生活にしたいと思います。

なぜなら、木曜日は焼き肉の日だから。

【Linux】【Laravel】テーブル作成とリレーション

最新ソースはこちら

https://github.com/takishita2nd/hotel-mng

TechCommitの課題で、予約管理を行うツールを作成すえうということで、Laravelで作成してみようと思いまして。

まずはデータベースの作成から着手。

イメージはこんな感じ。

使用する部屋は1つという条件があるので、そんなに複雑にしなくてもいい。

だが、予約が空いている日、埋まっている日が簡単にわかるように、予約が入っている日を管理できるテーブルも追加する。

Laravelでデータベースを作成するマイグレーションファイルを作成する。

$ php artisan make:migration create_reserve_management

中身はこんな感じ。

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateReserveManagement extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('reserve_managements', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('address');
            $table->string('phone');
            $table->integer('days');
            $table->date('start_day');
            $table->timestamps();
            $table->engine = 'InnoDB';
            $table->charset = 'utf8mb4';
            $table->collation = 'utf8mb4_unicode_ci';
        });

        Schema::create('reserve_day_lists', function (Blueprint $table) {
            $table->increments('id');
            $table->date('day');
            $table->timestamps();
            $table->engine = 'InnoDB';
            $table->charset = 'utf8mb4';
            $table->collation = 'utf8mb4_unicode_ci';
        });

        Schema::create('reserve_day_lists_reserve_managements', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('reserve_managements_id')
                  ->foreign('reserve_managements_id')
                  ->references('id')->on('reserve_managements')
                  ->onDelete('cascade');
            $table->integer('reserve_day_lists_id')
                  ->foreign('reserve_day_lists_id')
                  ->references('id')->on('reserve_day_lists')
                  ->onDelete('cascade');
            $table->timestamps();
            $table->engine = 'InnoDB';
            $table->charset = 'utf8mb4';
            $table->collation = 'utf8mb4_unicode_ci';
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('reserve_day_lists_reserve_managements');
        Schema::dropIfExists('reserve_day_lists');
        Schema::dropIfExists('reserve_managements');
    }
}

あとで微調整はする。

コメント無くてすまぬ。

これらは色々試行錯誤した結果なので、あとで直すかもしれない。

最新のコードはgitを参照していただきたい。

Schema::create()を使って、3つのテーブルを作成している。

1つめが予約管理、その次が予約日管理、最後に中間テーブル。

中間テーブルからは各管理テーブルを紐付けるように外部参照キーを設定している。

で、このテーブルを扱うために、モデルを作成する。

$ php artisan make:model reserve_management

これでモデルのベースが作成される。

整理のためにディレクトリは移動しているが、一個作ればそれをベースにして複製すればよい。

各管理テーブルからは以下のような関数を追加する。

    public function hasDayListAndManagement()
    {
        return $this->belongsTo('App\Model\reserve_day_lists_reserve_managements', 'id', 'reserve_managements_id');
    }

これで、管理テーブルから中間テーブルをリレーションすることができる。

逆に、中間テーブルから管理テーブルには、

    public function hasManagement()
    {
        return $this->hasMany('App\Model\reserve_management', 'id', 'reserve_managements_id');
    }

    public function hasDayList()
    {
        return $this->hasMany('App\Model\reserve_day_list', 'id', 'reserve_day_lists_id');
    }

と、すれば、参照できるようになる。

試しに、以下のコマンドを実行する。

$ php artisan tinker

$test = App\Model\reserve_day_list::first()
       => App\Model\reserve_day_list {#2912
            id: 1,
            day: "2019-10-10",
            created_at: "2019-11-20 00:52:20",
            updated_at: "2019-11-20 00:52:20",
          }
$test2 = $test->hasDayListAndManagement()
       => Illuminate\Database\Eloquent\Relations\BelongsTo {#2904}
$test2->get()
       => Illuminate\Database\Eloquent\Collection {#2897
            all: [
              App\Model\reserve_day_lists_reserve_managements {#2911
                id: 1,
                reserve_managements_id: 1,
                reserve_day_lists_id: 1,
                created_at: "2019-11-20 00:52:56",
                updated_at: "2019-11-20 00:52:56",
              },
            ],
          }
$test2->first()->hasManagement()->get()
       => Illuminate\Database\Eloquent\Collection {#2923
            all: [
              App\Model\reserve_management {#2915
                id: 1,
                name: "aaa",
                address: "bbb",
                phone: "ccc",
                days: 2,
                start_day: "2019-10-10",
                created_at: "2019-11-20 00:51:46",
                updated_at: "2019-11-20 00:51:46",
              },
            ],
          }

これで、予約日管理テーブルから予約管理テーブルを参照することができた。

逆に、予約管理テーブルから予約日管理テーブルを参照する。

$test = App\Model\reserve_management::first()
       => App\Model\reserve_management {#2912
            id: 1,
            name: "aaa",
            address: "bbb",
            phone: "ccc",
            days: 2,
            start_day: "2019-10-10",
            created_at: "2019-11-20 00:51:46",
            updated_at: "2019-11-20 00:51:46",
          }
$test2 = $test->hasDayListAndManagement()
       => Illuminate\Database\Eloquent\Relations\BelongsTo {#2904}
$test2->first()->hasDayList()->get()
       => Illuminate\Database\Eloquent\Collection {#2899
            all: [
              App\Model\reserve_day_list {#2911
                id: 1,
                day: "2019-10-10",
                created_at: "2019-11-20 00:52:20",
                updated_at: "2019-11-20 00:52:20",
              },
            ],
          }

できました。

Laravelはこれら、データベースへのアクセスが簡単だからいいよね。

家電家具もサブスクできる時代

subsclife

https://subsclife.com

様々な家具・家電を月額でレンタルできます。

レンタル期間が終了した場合はその商品を購入することもでき、様々な家具家電を試し置きしてみる、といった利用方法ができます。

いいなぁ。

利用にはクレジットカード必須です。

デビットカードやプリベイトカードでは利用できません。

いいなぁ。

Rentio

https://www.rentio.jp

家電メインですが、特にカメラ関連のアイテムが多い印象です。

イベントの時に必要になった!と言うときに活躍してくれるかもしれません。

いいなぁ。

【自作PC】配線問題はこれで終わりにしよう。

前回の配線汚い問題。

まずはCPU電源が短すぎるので、これを買いました。

CPU電源の延長ケーブル。

これで、マザーボードの裏側を通すことができます。

さらに、これも買いました。

マジックテープの結束バンド。

マジックテープだから、何度でも取り付け・取り外しができるんです。

これは便利。

こんな感じでファンの電源とまとめました。

使っていないPCI-Expressの電源もまとめてしまっておきます。

どうです。だいぶスッキリしたでしょう。

PCケースがアクリルで中身がスケスケになっているモデルなので、これでやっと人様に見せられるレベルかと。

【自作PC】いろんなベンチマークソフトを動かしてみる。

前回までに、FF14でのベンチマークの計測結果を載せましたが、世の中には様々なゲームがそれぞれベンチマークソフトを提供していて、ゲーム毎に動作できるかどうかを確認できます。

まぁ、ゲーム毎に必要とされているスペックが違うと言うわけですね。

重たいゲームもあれば、軽いゲームもあるということです。

ということで、いくつかゲームをピックアップして、ベンチマークソフトを動かしてみました。

ちなみに、前回FF14のベンチマーク結果はこちら。

FF15ベンチマーク

紹介ページでの説明では、おそらく最もスペックを必要とするゲームらしい。

少なくともハイスペックのグラボを組み込まないと無理って言うことですね。

PSO2ベンチマーク

DQ10ベンチマーク

たぶん、FF15>FF14>PSO2>DQ10で重たいゲームになっているようです。

後々、グラボを増設してその前後で結果がどうなるか見て見たいので、これはとりあえず参考値ということで。

・・・DQ10やってみようかな。

暇だし。

ついに居酒屋もサブスクの時代に・・・「MONSTER PASS」

これは衝撃的。

https://monster-pass.com

MONSTER PASSというアイテムで、店舗毎に定額で様々なサービスを受けられるらしい。

そもそもサブスクって?

サブスクリプションの略。

毎月一定金額を支払うことで、様々なサービスを受けられる料金体制のこと。

例えば、最近話題になった嵐の楽曲も、各種音楽配信サービスで聞けるようになりました。

こういったサービスは、月額料金で好きなだけ音楽を聴くことができます。

他にも、動画なんてのもありますね。NetflixやHuluなどもそうです。

我々が使用しているOffice365やYouTuberがよく利用しているAdobe製品もサブスクで利用できます。

サブスクのメリット

それは、使いたいときに使いたいだけ使える、というのが最大のメリットでしょう。

カラオケみたいに利用時間を気にする必要はありません。

解約も自由です。

違約金なんて発生しません。

サブスクのデメリット

解約し忘れがち。

数ヶ月間一度も利用しないまま料金だけ支払っているサービスはありませんか?

そう言ったものはすぐに解約しましょう。

大丈夫、必要になったらまた契約すれば良いのです。

で、今回のネタ「MONSTER PASS」

主に牛角や温野菜などを手がける企業が始めたサービスです。

https://monster-pass.com

店舗毎に月額料金とサービスが異なるようです。

魅力的なのが月額1628円で毎日90分飲み放題ができちゃう。

これはやばくない?

北海道の居酒屋「炎」での計算だったら2~3日で元が取れちゃう。

これはのんべぇにはたまらん。

店舗毎に料金が発生する

これは注意。

牛角のサブスクだからといって、牛角全店舗に適用されるわけじゃありません。

店舗毎に料金を支払わなければなりません。

利用条件がある

たとえば、牛角なら、319円の品物2品以上、という縛りがあるようです。

支払う前に条件を確認しましょう。

まだエリアは限定的

今のところ、サービスは首都圏中心のようです。

はやく地方都市に拡大すれば良いのに。

それでも一店舗に絞って頻繁に通うならお得

例えば、毎日牛角の(牛角ばっかりだな。他にもお店はあるからね!)ご飯毎日食べたい、というケースならばお得かもしれません。

結局は自分のライフスタイルと照らし合わせて

サブスクの結論は結局、こういうことだと思う。

自分のライフスタイルと照らし合わせてお得かどうかを勘定すれば良いと思うよ。

【ジビエ】鹿肉のロースト

前回使った鹿肉の余りを使いました。

お肉に塩とコショウで下味を付けて、

全面を約1分間焼いて、アルミホイルに包み、1時間放置します。

ソースはウスターソース、ケチャップ、赤ワイン、バターを火にかけて煮沸させます。

1時間後、スライスすればできあがり。

ちょうど良く火が通って柔らかくて美味しかったです。

【Linux】【Laravel】Auth機能を実装する。

LaravelにAuth機能(要はログイン機能)を実装します。

Laravelって便利なもので、デフォルトで簡単に実装できる機能があるんですよ。

まず、データベースなんですが、Laravel初期像体で、すでにmigrateの記述が出来上がっているので、migrateするだけでデータベースの準備はOKです。

ログインページですが、以下のコマンドを実行します。

$ php artisan make:auth

これだけで実装完了です。

Laravelを起動してブラウザからアクセスしてみましょう。

右上にRegisterとLoginのリンクがありますので、まずはRegisterでユーザー登録を行います。

名前、メールアドレス、パスワードを入力してボタン押下。

ログインした状態です。

一回ログアウトして、ログインページへ行ってみましょう。

ログインページです。

ユーザー登録した内容を入力すると、先程のログイン後のページが表示されるはずです。

本当は、パスワードを忘れたときのためにパスワードリセット機能もあるのですが、メールでリセットするため、SMTPの設定がないと動作しません。

なので、この機能は後々削除する予定。

自分、ぼっちですが何か?