Help us understand the problem. What is going on with this article?

Laravel基本知識&操作

久しぶりにLaravel(5系)を触っているので、忘れないように基本操作メモ

MVCフォルダ構成

  • コントローラ
    • app/Http/Controllers
  • モデル
    • app
  • テンプレート
    • resources/views

バッチ

格納場所

app\Console\Commands

コマンド

  • コマンド名をバッチファイル内の $signature に定義しておく
  • app\Console\Kernel.php$commands に追加
  • バッチ実行
    • php artisan コマンド名

バリデーション

参考

https://readouble.com/laravel/5.4/ja/validation.html

コントローラ/モデル側

$data = $_POST['id']; // チェックしたいデータ
$rule = ['id' => required|integer]; // チェックしたいキーとそのルール
$messages =[ // ルールに引っかかった際のエラーメッセージ
    id.required => 'IDが入力されていません',
    id.integer => 'IDが数字ではありません'
];

Validator::make($data, $rules, $messages)->validate();

テンプレート側

$errors に格納される

@if ($errors->any())
    @foreach ($errors->all() as $error)
        <div>{{$error}}</div>
    @endforeach
@endif

DB操作

参考

https://readouble.com/laravel/5.4/ja/queries.html

SELECT

基本

$result = DB::table('テーブルA')
// 取得するフィールド
    ->select(
        'フィールド1',
        'フィールド2',
    )
// 結合
    // シンプルな結合
    ->join('テーブルB', 'フィールドB1', '=', 'フィールドA1')
    // 複数条件の場合
    ->join('テーブルC', function($join) {
        $join->on('フィールドC1', '=', 'フィールドA1');
        $join->on('フィールドC2', '=', 'フィールドA2');
    })
// 条件
    // シンプルな条件
    ->where('フィールド1', '>', 1)
    // バインドしない場合
    ->whereRaw('フィールド3 IS NULL')
    // 入れ子
    ->where(function($sql) {
    $sql->where('フィールドA5', '!=', 9) 
        ->orWhere('フィールドA6', '!=', 9);
    }
// 並べ替え
    ->orderBy('フィールド1', 'ASC');
// 取得
    // 全件
    ->get();
    // 1行
//  ->first();

foreach ($result as $val) {
    echo $val->フィールド名;
}

特定のフィールド取得

$field = DB::table('テーブルA')
    ->where('id', '=', '1')
    ->value('フィールド名');

取得した値のemptyチェック

if ($result->isEmpty()) {
}

INSERT

基本

DB::table('テーブルA')
    ->insert([
        'フィールド1' => 1,
        'フィールド2' => 'テスト'
    ]);

UPDATE

基本

DB::table('テーブルA')
    ->where('フィールド1', '1')
    ->update(['フィールド2' => 'test']);

ログ系

ログ出力

出力先

  • storage/logs/
Log::info('1111');
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away