Laravelでオウンドメディアサイトみたいなのを試作する(1/n)

投稿者:

はじめに

いっつも脳筋で動く我流なので、定石通りにLaravelを使ってみようと思った。
ブートキャンプがてら。

前提条件

Laravel Sailがdockerにて環境構築されていること

目標

https://note.com/kurogoma939/n/n6623d7002690

App
├── Http
│   ├── Controllers
│   ├── Middleware
│   └── Requests
├── Providers
├── Services
├── Repositories
├── Models
├── Views
├── Assets
└── Tests

上記の基本アーキテクチャを意識しクラスを適切に分け、冗長しがちなcontrollerの視認性を上げる

仕様

利用者権限と機能

  • 管理者
    • 管理者ログイン
    • 記事投稿者一覧表示
    • 記事投稿者登録、削除
    • 記事一覧表示、論理削除
  • 記事投稿者
    • 記事投稿者アカウント作成、ログイン
    • 自身の記事として記事投稿、編集、削除
    • 自身のプロフィール表示

コメントをつけるアカウントは特に設けません。

個人的には目新しいことやってないな…(´・ω・`)

今更Laravel Jetstreamを試す

ログイン認証にてプラグインを使ってみます。

公式を参照しつつインストール

https://jetstream.laravel.com/installation.html

composer require laravel/jetstream

jetstreamのUIに Inertia か Livewire かを選択させられるが、

Livewire→PHP + Bladeで作成されたscaffolding(プロファイル画面など)
Inertia→vue.jsで作成されたscaffolding(プロファイル画面など)

なので、Livewire

php artisan jetstream:install livewire

実行後、Laravel sailが立ち上がってないようなら立ち上げ、laravel.testコンテナに入り、

php artisan migrate

http://127.0.0.1/ の右端に Login Register が表示されればOK。

register および login

registerにて登録後、/dashboard に遷移。
ログイン後も同様。

nameの重複確認はしてくれない…

簡単なプロフィールの修正ができるようです。

よく使う設定

アカウント登録時に規約に承諾させたい場合

config/jetstream.php の以下の行のコメントアウトを外します。

Features::termsAndPrivacyPolicy(),

プロフィール写真を登録させたい場合

usersテーブルのカラムをよく見ると profile_photo_path がありますが、プロフィール画面にはありません。
活性化するには、config/jetstream.php の以下の行のコメントアウトを外します。

Features::profilePhotos(),

その他の項目を追加したい場合

自己紹介文などusersテーブルのカラムにないものを追加したい場合は、別テーブルを使う方法を取りたいと思います。
こちらは別ポストにてそのうち紹介します。

さて…

これ権限分けできるのかしら?
なんかjetstreamのインストール方法を間違えた気がしてるけど…。

追記

jetstreamのインストール時のコマンドを間違えていた

https://biz.addisteria.com/jetstream_teams/

ちくしょうやっぱり間違えてたw

php artisan jetstream:install livewire --teams

にしなきゃダメだったんだ。

うーん…もうちょっと真面目に追うか。

そもそもログインプラグインの選定を誤っていた

Qiitaからコピペしつつマルチログインの実装を試みていたんですが…なんかおかしい。
なんかやり方が陳腐じゃね?

と思いよくよく調べると、これLaravel11。Laravel Breezeを使うのがモダンらしい。

Laravelのインストールからやり直し。どっとはらい。

To be continued…

コメントを残す