generated at
Laravel Nova
できること
DBのリソース管理
DBレコードのCRUDや検索
統計情報(後述のLensを自分で定義すると利用可能になる)の閲覧

有償。メジャーアップデートまでの、1サイトあたり買い切り
試用とかはない。買うとzipで振ってくる or private composerで入れる
利用者登録(これは無料)をすると、ドキュメントが読める
設定はコードで行う(DBに設定を保存することはない)

デモ
Taylor Otwellによるデモ。Laravelのどのような機能を使って作られているのかも説明している
8:29 リソースに紐付いたリソースを掘ってって編集できる

詳しい解説
Taylorによる紹介記事
>a primary feature of Nova is the ability to create, read, update, and delete resources in your database
Resource Management
Novaの主たる機能はデータリソースのCRUD
エッジケースも頑張ってる
「polymorphicなmany to many relationshipの中間・pivotテーブルのデータをUpdateしたい」できるよ
polcymorhicなrelationship:1つのassociationにおいて、対象のモデルを1つ以上のモデルの種類に所属(belongs to)させることができる
例:one-to-oneなPost - ImageとUser -Imageがある。これらはImageのモデルを共有しているとする(Imageモデルが2つのモデルに所属されている)
両方で使われているImageのリストを取得することができる
resourceのviewでは関連するリソースも見ることができる
検索
デフォルトはSQLで探すが、Laravel Scoutと連携することもできる
Userに所属しているPostがあったとき、紐付いているのですぐ探せる
Action
用語:リソース
既存のEloquent modelにNova向けの要素を追加したもの
アプリにUser Eloquentがあったとすると、それに対応するUser resourceを作成するところからNovaの利用が始まる
リソースに対するタスクを定義して実行できる
例:ユーザをeactivateするActionを定義する(コード)。UsersのビューからUserを指定してActionを実行する(GUI)
キューに積まれて非同期に実行される
Filter
カラムが条件にマッチするレコードをフィルターする
リソースにアタッチして使う
リソースのPrimary indexに適用される
Lens
リソースをそのまま表示するのではなく、データ加工をして集計値を表示できる
Lensをリソースにアタッチする形式で利用する
各リソースの public function lenses(Request $request){ return [];} にLensのクラスを名を書く
Lens classの中ではEloquentをつかってqueryを書いて集計する
例:UserがMost Valuable Userのlensを持っているとする
MVU lensはユーザとライフタイムの課金額を表示し、課金額の高い順にユーザを並べる
このLensをユーザにカラムにアタッチすると
アタッチ前
アタッチ後
Lensはリソース自体とは分離されたfieldを定義している(id, name, revenue)
上の例ではid, nameは同じものを利用するようにしている
Metrics
value, trend, partition(pie-chart)3種類のチャートがとても簡単に出せる
実際簡単だった。複雑なものはLensで実現するっぽい?kadoyau
Authorization
Laravelのauthorizationのしくみを利用する
リソースの背後にあるEloquent modelがpolicyを持っていたら自動的にそれが適用される
「リレーションをつかってリソースを他のリソースに割り当てる」権限のコントロールができる
Customization
UIはVue.jsのsingle-file componentsで組まれている
tool, cards, fieldsを自作することもできる
artisan nova:tool で利用できる
Tailwind CSSが使える