Laravelノート備忘録(書きかけ)

IT関連

 

マイグレーションファイルを作る

php artisan make:model Post –migration

マイグレーションをする

php artisan migrate

 

sqlite

sqliteを使う

$ sqlite3 database/database.sqlite

データ構造を見る

sqlite> .schema posts

sqliteを抜ける

sqlite > .quit

 

tinker

tinkerを使う

$ php artisan tinker

 

インスタンスを作る

$post = new App\Models\Post();

 

レコードを挿入する

$post->title = ‘title 1’;

$post->body = ‘body 1’;

$post->save();

 

レコードを挿入する(MassAssignmentで)

App\Models\Post::create( [‘title’ => ‘title2’ , ‘body’ => ‘body2’] );

App\Models\Post::create( [‘title’ => ‘title3’ , ‘body’ => ‘body3’] );

 

挿入したデータの確認

App\Models\Post::all();

App\Models\Post::all()->toArray();

 

MassAssignmentを無効化する設定

Post.phpに追加する

protected $fillable = [ ‘title’ , ‘body’ ];

追加したあとは一旦tinkerを抜けて入り直すことを忘れずに

 

特定のIDのデータを表示する

App\Models\Post::find(3)->toArray();

 

whereを使う

App\Models\Post::where(‘id’,’>’,2)->get()->toArray();

これはgetが必要

 

orderByを使う

App\Models\Post::where(‘id’,’>’,1)->orderBy(‘created_at’,’desc’)->get()->toArray();

 

latestを使う

App\Models\Post::where(‘id’,’>’,1)->latest()->get()->toArray();

 

 

take(limit)を使う

App\Models\Post::where(‘id’,’>’,1)->take(1)->get()->toArray();

 

レコードの更新と削除

インスタンスを作って値を入れてsaveやdeleteをするだけ。

$post = App\Models\find(3);

$post->title = ‘title 3 updated’;

$post->save();

$post->delete();

 

Controller

ddを使ってデータをダンプする。dumpとdieの略

 

 

View

コメントアウト

 

@foreach

 

@forelse

 

改行を含む文を書き出す

 

urlを生成する

 

 

 

Implicit Binding

web.php

引数をpostにして

 

Controller

showの引数をPostの$postにすれば、findとかいらない。

PostとはモデルのPostのことでしょう。

 

web.php

各順番に注意

ルーティングは先に書いたものから実行されるので、こう書くと/post/createにアクセスしても、{post}の中にcreateが入っていたと誤認されてしまう。

その場合は、createの方を上に持ってくるとよい。

もしくは、こうしてwhereを使ってあげるとよい。

 

コメント

タイトルとURLをコピーしました