新規プロジェクト作成
$ laravel new (アプリ名)
または
$ composer create-project laravel/laravel (アプリ名) --prefer-dist
artisanコマンド
コントローラの作成
$ php artisan make:controller (コントローラ名)
マイグレーションの作成
$ php artisan make:migration create_(テーブル名)_table
モデルの作成
$ php artisan make:model (モデル名)
シーダーの作成
$ php artisan make:seeder (テーブル名)TableSeeder
マイグレーションとシーダーの反映
$ php artisan migrate --seed
データベースのリフレッシュ
$ php artisan migrate:reset
web.php記法
getメソッド
routes/web.php
Route::get('(相対パス)', function () {
// 処理
});
routes/web.php
Route::get('(相対パス)', 'コントローラ名@関数')->name('名前');
postメソッド
routes/web.php
Route::post('(相対パス)', 'コントローラ名@関数')->name('名前');
URLに変数を混ぜる
routes/web.php
Route::get('/hoge/{id}', 'コントローラ名@関数')->name('名前');
routes/web.php
Route::get('/hoge/{id?}', 'コントローラ名@関数')->name('名前');
マイグレーション記法
Schema::table('users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
});
カラムタイプ
コマンド | 説明 |
---|---|
$table->bigIncrements('id'); |
BIGINT |
$table->integer('votes'); |
integer(整数) |
$table->string('name', 100); |
string(文字列) |
$table->float('amount', 8, 2); |
float(実数) |
$table->boolean('confirmed'); |
boolean(真偽) |
$table->date('created_at'); |
date(日付) |
$table->timestamp('added_on'); |
timestamp(時間) |
カラム修飾子
コマンド | 説明 |
---|---|
->unique() |
uniqueキー追加 |
->nullable() |
NULL値を許容 |
モデル記法
fillable
create()やupdate()を受け付けるホワイトリスト
protected $fillable = [
'name', 'email', 'password'
];
guarded
create()やupdate()を受け付けないブラックリスト
protected $guarded = [
'create_at', 'update_at'
];
hidden
パスワードなどの秘匿性の高いカラム
protected $hidden = [
'password', 'remember_token'
];
シーダー記法
database/seeds/DatabaseSeeder.php
<?php
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
Model::unguard();
$this->call('Seeder名');
Model::reguard();
}
}
<?php
use Illuminate\Database\Seeder;
use App\モデル名;
class MemoTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::table('テーブル名')->delete(); //最初に全件削除
(モデル名)::create([
'name' => 'aaa', 'email' => 'aaa@example.com'
]);
}
}
データの取得
全件取得
$items = Item::get();
最初の要素だけ取得
$item = Item::first();
id指定で取得
idというカラムがある場合のみ使用可能
$id = 1;
$item = Item::find($id); // 配列ではなく要素
$items = Item::find([1, 3]); // 長さ2の配列
条件付きでデータを取得
nameというカラムの値が「名前1」というデータを全件取得する。
$items = Item::where('name', '名前1')->get();
AND/OR検索
AND検索
15歳の鈴木さんのデータのみ取得する。
$items = Item::where('age', 15)
->where('name', '鈴木')
->get();
$items = Item::where([
['age', 15],
['name', '鈴木']
])->get();
OR検索
鈴木さんと山田さんのデータを取得する。
$items = Item::where('name', '鈴木')
->orWhere('name', '山田')
->get();
特定の文字列を含んだデータの取得
nameに「川」という文字列を含むデータを全件取得する。
$items = Item::where('name', 'like', '%川%')->get();
比較によるデータの取得
idが5よりも大きいデータを全件取得する。
$items = Item::where('id', '>', 5)->get();
idが5以下のデータを全件取得する。
$items = Item::where('id', '<=', 5)->get();
時間情報で検索
日付で検索
$items = Item::whereDate('created_at', '2020-01-04')->get();
年で検索
$items = Item::whereYear('created_at', '2020')->get();
月で検索
$items = Item::whereDate('created_at', '1')->get();
日で検索
$items = Item::whereDay('created_at', '4')->get();
並び替えて取得
昇順 (1, 2, 3, 4)
$items = Item::orderBy('id', 'asc')->get();
降順 (4, 3, 2, 1)
$items = Item::orderBy('id', 'desc')->get();
集約したデータの取得
件数の取得
$count = Item::count();
最大値の取得
idが一番大きいデータを取得
$item = Item::max('id');
データの編集や削除
データの更新
nameを鈴木に変更する
$item = Item::first();
$item->update([
'name' => '鈴木'
]);
データの追加
25歳の鈴木さんのデータを追加する
Item::create([
'name' => '鈴木',
'age' => 25
]);
データの削除
全件削除
Item::get()->delete();
特定のデータのみ削除
Item::where('id', 2)->delete();
id指定で削除
idというカラムがある場合のみ使用可能
$id = 1;
Item::destroy($id);
複数削除できる
Item::destroy([1, 3]);
コントローラ記法
class コントローラ名 extends Controller
{
public function 関数名()
{
// 処理
}
}
web.phpでURLに変数を含めた場合、引数としてその変数を受け取ることができる。
class コントローラ名 extends Controller
{
public function 関数名($変数名)
{
// 処理
}
}
Viewの表示
Viewの名前はresources/views/からのパスを記述する。
return view("Viewの名前");
Viewにデータを渡す。
return view("Viewの名前", ['item' => $item]);
リダイレクト
web.phpのnameメソッドで指定した名前を入れる。
return redirect()->route('名前');
URLに変数がある場合
return redirect()->route('名前', ['item' => $item]);
formで送信されたデータの処理
$request->input()
で取得可能
public function 関数名(Request $request)
{
$name = $request->input('name');
}