ラボ > Laravel、Lumen:エラー関連、DB関連

laravel DBに保存しようとしたらエラー

テーブル名は自動で複数形にする…っていう問題(※Eloquent、flightsあたり)

作成日:2024-03-11, 更新日:2024-03-11

経緯

昔に作ったサイトをlaravelで運用することに。
テーブルはそのままで使う…という方針でやっていたら「$〇〇〇->save()」で「そんなテーブルは無い!」って怒られた

テーブル自体はあるんだけど、laravelは複数形にしたテーブル名に対して何かしたがっている…ってのが原因

状況、対応

今回はマイグレーションファイルが不要なのでモデルファイルだけ作成した

個人的に感知しなトコで余計なコトをされるのがイヤだし、学習コストもあまりかけたくないので基本、SQLはすべてクエリを作ってそのまま流す…ってのをしている
でもinsertしたレコードの取得でEloquent(?)を使う必要があった…ココで問題が発生

しなくちゃいけない対応は「テーブル名を明確に指定する」ってコトらしい
※詳細は知らない。未調査 → 「flightsモデル」とか「flightsテーブル」とか…その辺で調べれば分かると思う

現状と対応

$saveData = array(
    'yyy' => 'yyy',
    'yyz' => 'yyz',
);
$xxx = new App\Models\xxx();
$xxx->table = [テーブル名]; // ← テーブルの指定を追加
// 省略
$xxx->fill($saveData);
$result = $xxx->save();