tomocito
Laracastsのlaravel 8 from scratchのコースを勉強しながらまとめています。
javascriptの関数を勉強した記事をまとめています。
今回の記事ではすでに準備されているHTMLをBladeに移植していきます。 ダウンロードHTMLファイルが準備されているので以下のページから Codeをクリックし Download ZIP より圧縮されたファイルをダウンロードする。 圧縮ファイルを解凍する。 移植解凍するとindex.htmlがあるので、そのファイルの中身をコピーして resources/views/components/layout.blade.php へ、ペーストする。(書き換える) その
前回の記事でブロガーごとの記事の一覧を表示することができました。 しかし数カ所にN+1問題が発生してしまっているので1つずつ修正していきます。 ClockworkTOPページのviewにも使っている resources/views/posts.blade.php のviewにブロガーの名前を表示するようにしたためにN+1問題が起きています。 上の記事でも紹介したClockworkを使い確認してみましょう。 5つの記事を取得するのに7つのクエリが実行されています。
今回の記事ではブロガー(筆者)ごとの記事をまとめて表示したいと思います。 一覧での表示順変更ブロガーごとの記事の表示に取り掛かる前に、TOPページの記事一覧の表示順を確認します。 まずはTinkerで1つ記事を追加してみます。 $php artisan tinkerPsy Shell v0.10.8 (PHP 8.0.3 — cli) by Justin Hileman>>> App\Models\Post::factory()->create();=> App\Mod
前回の記事でFactoryを作成した後にTinkerを使用しテストデータをデータベースのテーブルに挿入することができました。 今回はこのFactoryをコマンドから実行できるようにします。 DatabaseSeederあとでコマンドを実行してFactoryを実行しますが、そのコマンドが実行するファイルはseedersディレクトリの中にあるDatabaseSeeder.phpになります。 database/seeders/DatabaseSeeder.php <?php
Laravelで開発を行っていて、新たにテーブルにカラムを追加することになりマイグレーションを編集し php artisan migrate:fresh 上のコマンドを実行するということはよくあることです。 しかしこのコマンドを実行すると今までデータベースに入っていたテスト用のデータはすべて消えてしまい、もう一度データベースにデータを挿入しなくてはなりません。 そんなときにLaravelではテスト用のデータを生成してくれるModel Factoryという機能があります
前回の記事でも出てきた 記事一覧ページ resources/views/posts.blade.php <x-layout> @foreach($posts as $post) <article> <h1> <a href="/posts/{{ $post->slug}}" > {{ $post->title }} </a> </h1>
前回はブログにカテゴリーを追加しました。 今回はそのカテゴリーごとのブログ記事を表示できるようにしたいと思います。 Eloquent Relationship前回Postモデルに app/Models/Post.php public function category() { return $this->belongsTo(Category::class); } Categoryメソッドを追加し、 $post->category と記
以前の記事で ブログの記事を表示するところまで実装しました。 後にカテゴリーでまとめて記事を表示できるようにするために、この記事ではブログにカテゴリーを追加していきます。 マイグレーション&モデル 生成カテゴリーを格納するためのテーブルを追加するためのマイグレーションファイルとそのテーブルを操作するためのモデルを生成していきます。 マイグレーションのファイル生成コマンド $php artisan make:migration create_categories_ta
laravel news にlaravel scoutがmeilisearchに対応したと書いてあったので、今回試したみました。 meilisearchとは?オープンソースで高速な全文検索できるサーチエンジン。サーチ時のタイポにも対応している。 Laravelインストールしてからデータ挿入laravel インストール $laravel new meilisearch-test プロジェクトのディレクトリに移動 $cd meilisearch-test データベース
ルート・モデル・バインディングとは?いきなり例から見てみます。 routes/web.php // /posts/(記事ID) 記事IDが$idになるRoute::get('/posts/{post}', function ($id) { // 記事IDが$idの記事を取得 $post = Post::findOrFail($id); // $post(記事) return view('post', [ 'post' => $post ])
LaravelではEloquentモデルのcreateメソッドを使用してデータを保存すると、保存したモデルのインスタンスを返してくれます。 use App\Models\Flight;$flight = Flight::create([ 'name' => 'London to Paris',]); しかし、この方法は『mass assignmentの脆弱性』を招くとして知られていて、データベースのテーブルのカラムが書き換えられてしまう可能性があります。 mass
今回はブログの記事を表示するためにルーティングを設定し、viewも作成します。 ルーティングルーティングの設定をする前にどのようにブログを表示させるかを考えましょう。 今回は トップページに記事の一覧を表示 ( / ) 個別記事のページ ( /posts/(記事id) ) として進めていきます。 ルーティングを設定するファイル routes/web.php <?phpuse App\Models\Post;use Illuminate\Support\Fac
上の記事で説明したようにviewファイルは resources/views/ のディレクトリに保存しますが、例えば2つのviewファイルがある時どうなるでしょうか? ・ブログ記事一覧のページ resources/views/posts.blade.php <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" conten
Twitterでこの新しくLaravelに追加されるカーソル・ページネーションについての記事を見つけて面白かったので、自分なりにまとめてみたいと思います。 オフセット・ページネーション現在オフセット・ページネーションはよく使われているページネーションの一つです。 LaravelのpaginateとsimplePaginateのメソッドはこのオフセット・ページネーションをデフォルトで使用しています。 次のユーザーのテーブルのデータのページネーションを考えてみましょう。
ユーザーのブラウザで表示されるHTMLで構成されるviewを見ていきます。 viewファイルlaravelで使われるテンプレートのファイルは resources/views/ のディレクトリの下に保存されています。 Laravelをインストールした直後には resources/views/welcome.blade.php が自動的に作られます。 基本的にはここのディレクトリにあるファイルが、あなたのサイトを見にきたユーザーが見るページになります。 すでに気づ
ここからは今回作成するブログのの記事のModelとそのマイグレーションを作成していきます。 マイグレーションブログの記事を格納するpostsテーブルを作成するマイグレーションを作成します。 マイグレーションのファイルを作成するコマンド $php artisan make:migration (マイグレーション名) マイグレーション名は一般的には (動詞)_(テーブル名)_table のように書きます。ここではpostsテーブルを作成するので以下のようにコマンドを書きま