Диего
во )
T.A
можете объяснить как сделать?
Dmitry
чтобы полностью объяснить ситуцию
через foreach делай. И помоему create принимает массив. Model::create($array)
T.A
через foreach делай. И помоему create принимает массив. Model::create($array)
принцип создания - сколько объектов столько и записей в таблице?
T.A
понял, спасибо, попробую
Alexander
можете объяснить как сделать?
всем инпутам присваиваешь атрибут name="teams[][id]", name="teams[][scope]" и т.д., потом в контроллере foreach($request->teams as $team) { Team::create($team); }
T.A
без форича
T.A
Team::create($teams);
Диего
insert
Диего
эти вещи знает гугл
T.A
$teams = $request->all(); foreach ($teams as $team) { Team::create($team); }
T.A
так пойдет?
Диего
нет
Dmitry
так пойдет?
😄 я не против, делай
Диего
Team::insert($request->all())
Диего
естественно проверь fillable
T.A
естественно проверь fillable
там стоит только guarded id
Dmitry
естественно проверь fillable
а оно разве сработает?
T.A
Team::insert($request->all())
ничего не нашел про insertю можете дать ссылку?
T.A
в проекте 5.1 версия
Dmitry
в проекте 5.1 версия
выбери 5.1 :) там ничего не менялось
T.A
понял) спасибо
Диего
Етить колотить)
Dmitry
понял) спасибо
только думай, когда юзаешь insert методы модели у тебя не сработают
T.A
рилэйшены?
Dmitry
рилэйшены?
сеттеры например
Dmitry
т.е. это тупо query builder
T.A
понял
Dmitry
Team::insert($request->all()) == DB::table('team')->insert()
Диего
Dmitry
Хз, должен )
не, не должен :)
T.A
не, не должен :)
create метод же
Dmitry
create метод же
когда create сработает, когда insert нет
Arthur'); DROP TABLE Users;--
hi
Arthur'); DROP TABLE Users;--
у меня в базе был float 16, 8. были траблы, некоторые малые значения 0.0000001 превращались в крякозябру типа 4.3e-7. поставил decimal 16, 8. все норм но тесты начали падать, типа 0.01 и 0.01000000 это не одно и тоже! HELP
Aleserche
Фрагмент теста в студию
Aleserche
И как маппится decimal
Arthur'); DROP TABLE Users;--
$table->decimal('amount', 16, 8);
Aleserche
Ок, в json число как строка с лишними нулями идёт. Нужно чтобы именно число было
Arthur'); DROP TABLE Users;--
неужели нужно кучу кода переписывать на number_format?
Maksim (Ellrion)
неужели нужно кучу кода переписывать на number_format?
можешь в модели сделать cast в float. или акцессор который тебе обрежет нули
Maksim (Ellrion)
я бы вообще деньги хранил в инте в наименьшей единице. и юзал валуе обжект паттерн для них
Aleserche
Сейчас апи гляну, должна же быть возможность ставить JSON_NUMERIC_CHECK
Aleserche
Да, есть
Maksim (Ellrion)
Сейчас апи гляну, должна же быть возможность ставить JSON_NUMERIC_CHECK
а причем тут json? у него decimal и так из базы прилетает в виде строки его число
Aleserche
Хм, ща
Aleserche
php > var_dump(json_encode(['price' => '123123.0140000000'], JSON_NUMERIC_CHECK)); string(20) "{"price":123123.014}"
Arthur'); DROP TABLE Users;--
спасибо всем
Arthur'); DROP TABLE Users;--
стоп
Arthur'); DROP TABLE Users;--
теперь снова кракозябра появилась
Arthur'); DROP TABLE Users;--
😐
Aleserche
Смотри, у тебя в контроллере Response::json или что-то там. Попробуй Response::json($data, 200, [], JSON_NUMERIC_CHECK) как-то так
T.A
в реквесте приходят много объектов, каждый объект будет записью в таблице. объясните пожалуйста как сохранить их в таблицу?
сделал. объекты сохраняются теперь, каждый в отдельную строку, но только без таймстэмпов. а как теперь делать update этих строк? подаскажите пожалуйста?
T.A
Выбрать записи без ts и обновить их?
без ts? можете объяснить?
Aleserche
Без таймстэмпов
T.A
нет, сейчас объясню подробнее
Aleserche
Я бы на миграцию еще посмотрел. Почему записи timestamps nullный
T.A
пользователь может зайти сюда еще раз, поменять значения и сохранить, а я в контроллере должен найти измененные элементы в таблице и обновить данные
Aleserche
Может там nullableTimestamps()
T.A
мне кажется я не так сохраняю public function postPlan(Request $request, $id) { $turnier = Turnier::find($id); $turnier->plan()->insert($request->all()); return $this->response->withArray(['result' => true, 'message' => 'Turnier updated']); }
Aleserche
А где пуш?
Aleserche
Ну типа save()
Maksim (Ellrion)
а как? можете подсказать?
вся фишка в том что ты используешь метод билдера а не ORM. потому и не проставляются автоматом таймстампы. так что ты должен в каждую строку сам добавить
Aleserche
$turnier->save(), но тут же update