LoginSignup
17
17

More than 3 years have passed since last update.

Laravelでよく使うコマンド、記法

Last updated at Posted at 2020-01-04

新規プロジェクト作成

$ 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');
}
17
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
17