SQLSTATE[42S22]: Column not found: 1054 Unknown column 'name' in 'field list'
エラー発生時
モデルを新規作成して保存しようとしたとき。Laravel開発のSQL(データベース)エラーです。
例えば、Memerモデルとmembersテーブルがあるとして、membersテーブルの構成は次のようになっているとします。
id family_name password |
なにかのメンバーを新規作成できるアプリで、フォームに情報を入力して「新規作成」ボタンを押したら、エラーが発生したというイメージです。
以下、あなたの環境に置き換えて対応してください。
原因
‘name’カラムがmembersテーブルに存在しないため。
エラー文を和訳すると「’field list’に不明なカラム’name’があります。」です。
勘違いしてはいけないのが、「’field list’というテーブルに’name’カラムが無い」というエラーではないということですね。
解決法
次の2つの場合に分けて解決法を解説します。
コントローラーの関数の内容が間違えている
次のように修正しましょう。
public function store(Request $request)
{
$member = new Member;
// 間違い例
// $member->name = $request->name;
// 正しい書き方
$member->family_name = $request->name;
// 以下、略
}
inputタグのname属性を’family_name’に変更すると
// 正しい書き方
$member->family_name = $request->family_name;
と書けるので、分かりやすくて良いかもしれません。
テーブルのカラム名が間違えている
今回の例だと、そもそも’family_name’カラムが誤りである場合です。
membersテーブルを次のように修正しましょう。
family_name → name
テーブルのカラム名は
などで、変更できます。
以上、『SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘name’ in ‘field list の解決法』でした。