20210109のlaravelに関する記事は4件です。

【無益】小説サイト作ります。

こんにちは、シロウです。

2021年になって、早くも9日経ちました。

最近、凄く寒いですね。
僕は冬眠しながら、なんかWebアプリを作りたいなーと考える日々を送っていました。

そして「そうだ、小説サイトでも作ろう!」と思い至ったので、これから1ヶ月~2ヶ月ぐらいで小説サイトを作ろうと思います。

おそらく、多くの方は興味ないと思いますが、 どんな感じにするか〜とか現時点での構想をお話ししておきます。

小説サイトを作ろうと思った理由

理由としてはシンプルで「才能ある小説家が埋もれてほしくないから」です。

というのも、僕はとても小説が大好き(特に異世界系。笑)でして、昔に自分で小説を書いて、投稿していたこともあります。(草生えますね。)

ただ、その時に思ったのが「ちょっと面白いだけだと、全く日の光を浴びれない」ということ。

なぜなら、既存の小説サイトはあまりにも強豪が多するからです。実にシンプル。

それなら、僕が新しい小説サイトを作って、何か面白い小説には支援やPRできるような仕組みを作ればいいんじゃね!?と考えたわけです。

小説サイトの機能

小説サイトといっても必要な機能は沢山ありますよね。

でも、色々と機能をつけすぎても、わかりにくいと思うんです・・・(経験談)

なので、作家さんは楽に執筆活動ができて、読者は自分が好きな小説をすぐに見つけられるようにしたい。

その中でも、特に重要視したいのは収益の部分。

できる事なら運営費を差し引いた広告収入を全部、作家さんに回そうかな〜とか考えてます。

これに関しては、小説サイトがそれなりの規模になっていかないと難しいと思いますが、、、ぜひ実現したい。

小説サイトを作成するにあたっての意気込み

とにかく色んな作家さんにチャンスが回ってくるようにしたいので、色々とがんばります。(ざっくり)

そして、面白い小説がもっと世の中に溢れて、僕が好きな小説ももっと増えることを願います。

ちなみに、漫画も好きなので、次は漫画サイトも作りたいですね、はい。笑笑

こんな感じで、とりあえずこれから作っていこうと考えてるWebアプリのお話しでした。

最後まで読んで頂きありがとうございましたm(_ _)m

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Laravel】composerコマンドでメモリ不足で実行できない場合の対処法【composer】

メモリ不足でcomposerコマンドが実行できない場合、無制限のオプション?を一緒につけることでインストールできるようになります。

下記のコマンドを実行して失敗した場合・・・

composer require laravel/helpers

「-1」で無制限にする

COMPOSER_MEMORY_LIMIT=-1 composer require laravel/helpers

これでcomposerコマンドの実行が成功すると思います。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Laravel シーディングのやり方

環境

・Mac OS catalina
・Laravel6系
・phpMyAdmin
・MAMP
・Visual Studio Code

シーディングとは

初期状態で、いくつかのダミーコードを作成すること。

手順

①シーダーファイルの作成

php artisan make:seeder (大文字)名前TableSeeder

②記述(シーディング処理)

public function run()
の中にダミーデータを記述していく。

public function run(){

//1レコード目
    $param = [
         'name' => 'taro', //キーがカラムにあたる
         'mail => 'taro@yamada.jp',
         'age' => 12,
    ];
    DB::table('(小文字)テーブル名')->insert($param);

//2レコード目
    $param = [
         'name' => 'hanako', //キーがカラムにあたる
         'mail => 'hanako@flower.jp',
         'age' => 34,
    ];
    DB::table('(小文字)テーブル名')->insert($param);
}

③シーダーファイルの登録

DatabaseSeeder.phpのファイルに、今から行うシーダーファイルを登録しておく必要がある。
public function run()に以下を記載する。

$this->call((大文字)名前TableSeeder::class);

$this->call(シーダークラス::class);という形で記載する。

④シーディングを実行する

php artisan db:seed

とターミナルで入力すると実行される。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Laravel Eloquentで作る「いいね」数ランキングリスト

はじめに

メディア系サイトを構築している際、ユーザーや投稿をランキング形式で取得したい場合があるかと思います。
ランキングの基準を「いいね」数にしている場合投稿いいねを別テーブルにし、リレーションを設定するのが一般的だと思います。
リレーション先のいいね数をカウントしてソートします。

何が問題か?

Laravel Eloquentを用いてソートを実装する場合orderByを使用します。

ProductController.php
public function list()
    {
        $products = Product::with('likes')->orderBy(Product::CREATED_AT, 'desc')->paginate();
        return $products;
    }

orderByはテーブルのカラムを利用して(第一引数)降順・昇順(第二引数)を決定します。
そのためcount()を用いて「いいね」数を取得してもそれはカラムではないため、orderByできません。

実装

withcount()を使用します。引数に取得したいリレーションテーブル名を入れると'○○_count'というデータをカラム扱いとして取得できます。この値はカラム扱いなため、きちんとorderByできます。

ProductController.php
public function list()
    {
        $products = Product::withCount('likes')->orderBy('likes_count', 'desc')->paginate();
        return $products;
    }
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む