Open19

久しぶりにLaravelでブログを作ってみる

手羽先手羽先

bootstrapの導入

本当はtailwind cssやreactを使いたいところだが、まずは書籍と同じようにする。そこからSPAやtailwind cssの便利さを噛み締めたい。

  • なんかlaravel/uiで入れる方法もあるらしい
    • よくわからない

https://qiita.com/taidong5588/items/d9b25fab88fa8a191961#b-bootstrapのみをインストールするlaravel-uiを使わない場合

手羽先手羽先

npmを使って入れてみる

sail node --version
v18.16.1

sail npm --version
9.8.0

sail npx --version
9.8.0
手羽先手羽先

phpMyAdminの導入

https://chigusa-web.com/blog/laravel-sail-phpmyadmin/
どうやらsail環境には入ってないらしいので、対応していく

手羽先手羽先

    phpmyadmin:
        image: phpmyadmin/phpmyadmin
        links:
            - mysql:mysql
        ports:
            - 8080:80
        environment:
            #PMA_USER: "${DB_USERNAME}"
            #PMA_PASSWORD: "${DB_PASSWORD}"
            PMA_HOST: mysql
        networks:
            - sail

手羽先手羽先

phpmyadminのユーザーアカウントが表示されない

.envに記載されている名前とpasswordで接続したら、phpmyadminのユーザアカウントが表示されなかった。ユーザー名をrootにしてenvに設定しているpasswordにしたらユーザーアカウントが表示された。

手羽先手羽先

LaravelのDB指定

DB_DATABASE=blog
DB_USERNAME=作ったアカウント
DB_PASSWORD=作ったアカウント

にしておく(してなくてexample_appにマイグレーションされたし、deniedになった)
というか、デフォルトで作られているDBと比べてユーザー作って管理した方が安全性があるということなのかな?

手羽先手羽先

モデル、マイグレーションファイルの作成

sail php artisan make:model Article -m
手羽先手羽先

テーブルの作成


{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        Schema::create('articles', function (Blueprint $table) {
            $table->id();
            $table->text("title")->comment("タイトル");
            $table->text("body")->comment("本文");
            $table->timestamps();
        });
    }

sail php artisan migrate

間違えてsail artisan migrateとやったが、それでも良いらしい

手羽先手羽先

サンプルデータ

sail artisan make:seeder ArticlesTableSeeder
<?php

namespace Database\Seeders;

use App\Models\Article;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;

class ArticlesTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        for ($i=1; $i < 10; $i++) { 
            $article=new Article();
            $article->title="記事タイトル" . $i;
            $article->body="記事本文" . $i;
            $article->save();
        }
    }
}
sail artisan db:seed --class=ArticlesTableSeeder

手羽先手羽先

ページテンプレートの作成

sail artisan make:component GuestLayout