#php #laravel #code-cleanup
Вопрос:
Я пишу этот код в laravel, кто-нибудь может помочь мне написать его лучше ?
Setting::where('key' , 'online_course')->update(['value' => $request->get('online_course') ]);
Setting::where('key' , 'read_item')->update(['value' => $request->get('read_item') ]);
Setting::where('key' , 'comment_item')->update(['value' => $request->get('comment_item') ]);
Setting::where('key' , 'rate_item')->update(['value' => $request->get('rate_item') ]);
Ответ №1:
Возможным решением было бы использовать foreach
цикл, вытягивающий ваш keys
и values
из $request
объекта:
foreach ($request->only('online_course', 'read_item', 'comment_item', 'rate_item') as $key => $value) {
Setting::where('key', $key)->update(['value', $value]);
}
Вы могли бы использовать $request->all()
, чтобы захватить все keys
из $request
объекта, чтобы сократить его еще больше, но если вы сделаете это, убедитесь, что у вас есть достаточная оценка и безопасные средства защиты (например, массовое назначение), чтобы вы случайно не использовали некоторые нежелательные $request
данные.
Ответ №2:
с вашей идеей я пишу этот код
foreach ($request->except('_token' , '_method') as $key => $value){
Setting::where('key' , $key)->update(['value' => $value]);
}
но этот код работает правильно
foreach ($request->all() as $key => $value){
Setting::where('key' , $key)->update(['value' => $value]);
}
Комментарии:
1. И это то, что я предложил?