# Laravel 5.7 の MVC 使う時のメモ

# Model

sample tax_mode.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;

class tax_model extends Model
{
    protected $db;
    protected $table = "TAX";
    protected $id = "tax_id";

    public function __construct()
    {
        $this->db = DB::connection();
    }

    public function insertRow(Array $data)
    {
        return $this->db->table($this->table)->insertGetId($data);
    }

    public function updateRow(Array $where, Array $data)
    {
        return $this->db->table($this->table)->where($where)->update($data);
    }

    public function getRow(Array $where, String $select = '*')
    {
        return $this->db->table($this->table)->select($select)->where($where)->orderBy($this->id, 'desc')->first();
    }

    public function getList(Array $where, String $select = '*')
    {
        return $this->db->table($this->table)->select($select)->where($where)->orderBy($this->id, 'desc')->get();
    }

    public function getRowId(Array $where)
    {
        $data = $this->getRow($where, $this->id);
        return $data ? $data->{$this->id} : false;
    }
}

# __construct()

DB::connection()

# insertRow()

insertRow(Array $data) insert 後 insert した行の ID を返却

# updateRow()

updateRow(Array $where, Array $data)
$where 条件
$data 変更データ

# getRow()

getRow(Array $where, String $select = '*') 条件一致のデータ一行のみ返却

# getList()

getList(Array $where, String $select = '*') 条件一致の全データ返却

# getRowId()

getRowId(Array $where) 条件に一致した行の ID 数字返却

# Query builder SQL を確認 toSql()

toSql() SQL 文取得
getBindings() プレースホルダの値取得

    public function getRow(Array $where, String $select = '*')
    {
        $query = $this->db->table($this->table)
                          ->select($select)
                          ->where($where)
                          ->orderBy($this->id, 'desc');
        // SQL文発行
        print_r($query->toSql());

        // プレースホルダの値取得
        print_r($query->getBindings());
    }

# QueryBuilder Mode SQL update +1

複数のデータ行を id 条件で update +1 にする

モデルにサンプルソース

    public function progressiveStatusByIds(String $col, array $ids, String $progressive = '+1')
    {
        return $this->db->table($this->table)->whereIn($this->key, $ids)->update([$col => DB::raw($col . $progressive)]);
    }

# Init

$this->db $this->table $this->key について

protected $db = DB::connection());;
protected $table = 'table_name';
protected $key = 'id';

# $col

カラム名 String status

# $ids

テーブルキーの配列 (whereIn 用) Array [1,2,5,6]

# $progressive

更新差分値 String +1 -2

# DB::raw()

エスケープなしで生のデータフォーマット

2019-09-13
  • php
  • laravel

関連記事

Laravel blade foreach loop と current url
正規表現一覧 よく使う検索・置換のパターン
Elastic Beanstalk \$\SERVER['REMOTEADDR'] 取得できない
Apache 初期設定メモ
php 開発におけるコーディングルール・規約
codeigniter email ライブラリでメール送信 日本語対応
php curl 使って クリックなしで POST 送信
php date 日付の日数・月数差を計算
PHP empty isset is_null の違い
php Exception エラーキャッチでメール送信
allowurlinclude の設定で ftp_connect()エラー
FlattenException deprecated
Lumen と Laravel 違い比較
laravel session を制する
PHP 8 リリース新機能と変更
解決!phpMyAdmin テーブル構造の内容が表示されない問題
Smarty HTTP URL 取得できるサーバー関数
開発時によく使うゼロ埋めパディング作業まとめ
twig 3 人気 PHP テンプレートエンジンがバージョンアップ
nuxtjs と codeigniter で jwt システム構築
PHP 7.4 にアップグレードして使えなくなる機能
Laravel 5.1 から 8.1 にバージョンアップ
HTML から PDF に変換 PHP ライブラリ mPDF の設定
laravel に vuejs 使うための初期設定
php.ini 初期設定のいろいろ
爆速軽量フレームワーク codeigniter PHP 開発
Composer コマンドとオプション
Laravel Error についてのメモ