前提
既存のlaravelアプリにカラムをphpmyadminにて追加 (カラム名:conditions)し、laravelの管理画面からデータをカラムにインサートしたいです。
現状、Column not foundのエラーがerrorlogにでています。
カラムを追加した際、下記記載箇所のソースコードを変更しています。
変更内容は間違っていますでしょうか。もしくは別途修正すべき箇所はありますでしょうか。
発生している問題・エラーメッセージ
production.ERROR: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'conditions' in 'field list' (SQL: update `shops` set `conditions` = 1, `shops`.`updated_at` = 2022-09-17 20:38:01 where `id` = 1) {"userId":3,"exception":"[object] (Illuminate\\Database\\QueryException(code: 42S22): SQLSTATE[42S22]: Column not found: 1054 Unknown column 'conditions' in 'field list' (SQL: update `shops` set `conditions` = 1, `shops`.`updated_at` = 2022-09-17 20:38:01 where `id` = 1) at /home/users/1/example.jp/vendor/laravel/framework/src/Illuminate/Database/Connection.php:671)
該当のソースコード
app/Models/Shop.php
php
1class Shop extends Model 2{ 3 protected $fillable = [ 4 'conditions', 5 ]; 6}
app/Http/Controllers/ShopController.php
public function show($id) { $shop = Shop::where([ ['area_id', '=', config('constants.AREA_ID')], ['id', '=', $id], ['status', '=', 1], ])->firstOrFail(); $const_shop_costume_rental = config('constants.FORM.SHOP_COSTUME_RENTAL'); $const_shop_hairmake = config('constants.FORM.SHOP_HAIRMAKE'); $const_shop_transfer = config('constants.FORM.SHOP_TRANSFER'); $const_shop_dormitory = config('constants.FORM.SHOP_DORMITORY'); $const_shop_freewords = config('constants.FORM.SHOP_FREEWORDS'); $const_shop_conditions = config('constants.FORM.SHOP_CONDITIONS'); return view('shop.show', [ 'shop' => $shop, 'const_shop_costume_rental' => $const_shop_costume_rental, 'const_shop_hairmake' => $const_shop_hairmake, 'const_shop_transfer' => $const_shop_transfer, 'const_shop_conditions' => $const_shop_conditions, 'const_shop_freewords' => $const_shop_freewords, 'const_shop_dormitory' => $const_shop_dormitory, ]); }
config/constants.php
php
1<?php 2 return [ 3 'FORM' => [ 4 'SHOP_CONDITIONS' => [ 5 '1' => 'テスト', 6 ], 7 ], 8 ]; 9?>
resources/views/admin/shop/edit.blade.php
php
1 <form method="POST" action="{{ route('admin.shop.update', ['shop' => $shop]) }}" enctype="multipart/form-data"> 2 @csrf 3 @method('PUT') 4 <table class="c-table c-table__col"> 5 <tr> 6 <th>条件</th> 7 <td> 8 <div class="c-form__check c-form__check_inline"> 9 @foreach(config('constants.FORM.SHOP_CONDITIONS') as $key => $value) 10 <label><input type="checkbox" name="conditions" value="{{ $key }}" {{ old('conditions', $shop->conditions) == $key ? 'checked' : '' }}> {{ $value }}</label> 11 @endforeach 12 </div> 13 </td> 14 </tr> 15 <div class="c-buttons"> 16 <a href="{{ route('admin.shop.index') }}" class="c-button c-button__cancel">戻る</a> 17 <button type="submit" class="c-button c-button__action">更新する</button> 18 </div> 19 </form>
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。