Laravelで where id is nullでUpdate処理がエラーになった事象
LaravelのUpdate処理で、なぜか、更新対象のキーが変わって、うまく更新処理ができず、エラーになりました。
フレームワーク内の細かなところまで、追っていないですが、とりあえずの対応は行なったので、その時の対応をメモしておきます。
前提条件
Laravelのバージョン
$ php artisan --version Laravel Framework 5.7.22
テーブル定義
database/migrationのファイル
Schema::create('master_products', function (Blueprint $table) { $table->string('key_code'); $table->string('product_name'); $table->timestamps(); $table->primary('key_code'); });
発生した事象
id以外で主キーになりうるカラムのテーブルで更新処理を行なっていたが、
なぜか、値を変更しようとすると、更新キーがidに変わって更新できない
という事象が発生しました。
where id is null
これが、エラーメッセージ内にありましたが、
主キーは別のキーにしており、同じ値のままであれば、
問題なく更新処理は行えていました。
修正前の更新処理
public function updateData($request) { $data = MasterProducts::where('key_code', $request->key_code)->first(); $data->key_code = $request->key_code; $data->product_name = $request->product_name; $data->save(); }
修正後の更新処理
$data = MasterProducts::where('key_code', $request->key_code) ->update(array('key_code' => $request->key_code, 'product_name' => $request->product_name));
参考:公式ドキュメント
スキルを使って、就職/転職/副業する時のサイト
プログラミングのスキルなどを、自分なりに高めた上で、
自分のスキルをアピールして就職や転職を行い、年収をあげるか、
副業という形で、年収にプラスアルファの稼ぎを増やすことはできます。
まずはできる範囲で取り組むことで、
少しずつ、経験値も増え、自分のスキルが収入につながるのでおすすめです。