ピックアップ
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));
参考:公式ドキュメント
おすすめ書籍
コメント一覧
コメントはまだありません。




コメントを残す