Я новичок в laravel, я хотел бы обновить несколько строк, используя одно поле ввода.
Мои записи в базе данных:
Например, мое поле ввода имеет значение 500. Когда я отправлю это поле, оно затем обновит несколько выбранных идентификаторов из базы данных от самого старого до самого последнего.
Если первая строка имеет количество 100, это будет 500 - 100, а затем она перейдет ко второй строке, в которой значение поля ввода теперь равно 400, и снова получит разницу второй строки 400 - 200 до тех пор, пока поле ввода становится 0.
Это возможно? Спасибо.
Мое решение будет таким: загрузить все необходимые записи, а затем выполнить расчет и выполнить обновление для всех из них. Следите за крупным обновлением здесь: stackoverflow.com/questions/22430716/eloquent-model-mass-upd
Хорошо, я понимаю, что вы хотите продолжать обновлять каждую строку, пока не «исчерпаете» свой ввод, но как вы собираетесь обновлять строки? Будете ли вы устанавливать запрошенное количество на 0?






Запустите foreach и передайте в него поле ввода. Простой
Вы можете следовать приведенному ниже коду для понимания.
public function updateRecord(Request $req)
{
//get data from oldest(ASC) to latest (desc).
$var = $req->input_field;
$data = ModelName::orderBy('id','asc')->get();
foreach ($data as $key)
{
// ($var < 0) in case negative value
if ($var == 0 || $var < 0)
{
break;
}
//find row with id
$singleRow = ModelName::find($key->id);
//holding data base quantity
$dummyHolder = $single->quantity_requested;
$single->quantity_requested = $dummyHolder + $var;
$singleRow->save();
//update variable
$var = $var - $dummyHolder;
}
}
Спасибо, сэр! Попробую этот.
Привет, сэр, я задаю еще один вопрос, связанный с этим вопросом. stackoverflow.com/questions/56720477/…
Опубликуйте свой код, который вы пробовали, перед этим сначала прочитайте это: stackoverflow.com/help/как спросить