я пишу приведенный ниже код , как я могу его очистить? может ли кто-нибудь помочь мне написать его лучше?

#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. И это то, что я предложил?