Size: a a a

Laravel для начинающих

2020 February 28

4

4unkur in Laravel для начинающих
НЕ ЛАРАВЕЛ

есть один скриптец (старый). Там есть обертка под базу
$iaDb->update();  собственно обновляет записи в базе.

Есть адаптер под mysqli.
Вопрос: как узнать, выполнился ли апдейт или нет?

в гуглах почти все предлагают affected rows смотреть. То есть если больше нуля, значит апдейт успешен.
return iaDb->getAffected() > 0;
но тут есть проблема, если значения не изменились, то affected rows будет 0
а это будет считаться как ошибка
Например: есть таблица users. там есть запись: id: 1, name: 'name'
далее код:
$iaDb->update(['name' => 'name']); // значение этого поля такое же как новое

в этом случае update метод возвратит false, что я думаю неправильно.


В ларавелах я посмотрел, там есть такое:
Model::save:
if($this->exists) {
   $saved = $this->isDirty() ?
               $this->performUpdate($query) : true;
}

то, есть если значения в модели и в базе одиннаковые - то запрос не происходит и сразу возвращается true
У нас нет функционала isDirty, поэтому надо как то решить  

Что думаю я?
Мне в голову приходит мысль проверять на mysqli_errno
если эта функция возвращает 0, то со стороны мускуля не было ошибок и типа все зашибись.
то есть будет что то типа:
return ($this-getErrrorNumber() === 0);

Может еще варианты есть
источник

VY

Vladimir Yefremov in Laravel для начинающих
Егор Карась
view('auth.register')?
Спасибо!
источник

D

DK in Laravel для начинающих
Vladimir Yefremov
это обычная Ларовская регистрация - на обычном месте
resources\views\auth\register.blade.php
только в УРЛ добавлен слаг партнера (после слеш)
источник

VY

Vladimir Yefremov in Laravel для начинающих
4unkur
НЕ ЛАРАВЕЛ

есть один скриптец (старый). Там есть обертка под базу
$iaDb->update();  собственно обновляет записи в базе.

Есть адаптер под mysqli.
Вопрос: как узнать, выполнился ли апдейт или нет?

в гуглах почти все предлагают affected rows смотреть. То есть если больше нуля, значит апдейт успешен.
return iaDb->getAffected() > 0;
но тут есть проблема, если значения не изменились, то affected rows будет 0
а это будет считаться как ошибка
Например: есть таблица users. там есть запись: id: 1, name: 'name'
далее код:
$iaDb->update(['name' => 'name']); // значение этого поля такое же как новое

в этом случае update метод возвратит false, что я думаю неправильно.


В ларавелах я посмотрел, там есть такое:
Model::save:
if($this->exists) {
   $saved = $this->isDirty() ?
               $this->performUpdate($query) : true;
}

то, есть если значения в модели и в базе одиннаковые - то запрос не происходит и сразу возвращается true
У нас нет функционала isDirty, поэтому надо как то решить  

Что думаю я?
Мне в голову приходит мысль проверять на mysqli_errno
если эта функция возвращает 0, то со стороны мускуля не было ошибок и типа все зашибись.
то есть будет что то типа:
return ($this-getErrrorNumber() === 0);

Может еще варианты есть
"У нас нет функционала isDirty, поэтому надо как то решить"

надо ее написать
источник

VY

Vladimir Yefremov in Laravel для начинающих
юзер, находясь на странице регистрации
http://million-new.local/register
вводит в форме ссылку вида
http://million-new.local/reassigned-actuary-interfacing-pricey
на главную - с опознанием партнера

мне из нее надо сформировать такую
http://million-new.local/register/reassigned-actuary-interfacing-pricey
т.е. на эту же регистрацию, но партнерским "хвостом"

подкиньте мысль, плз - как сделать кошерно (умно)?
собирать ли ссылку ЖСом и дальше просто отправить на роут?
или отправить в роут его сырую ссылку и мути(рова)ть в контроллере?
источник

AH

Andrey Helldar in Laravel для начинающих
Vladimir Yefremov
юзер, находясь на странице регистрации
http://million-new.local/register
вводит в форме ссылку вида
http://million-new.local/reassigned-actuary-interfacing-pricey
на главную - с опознанием партнера

мне из нее надо сформировать такую
http://million-new.local/register/reassigned-actuary-interfacing-pricey
т.е. на эту же регистрацию, но партнерским "хвостом"

подкиньте мысль, плз - как сделать кошерно (умно)?
собирать ли ссылку ЖСом и дальше просто отправить на роут?
или отправить в роут его сырую ссылку и мути(рова)ть в контроллере?
В голову приходит только распарсить: https://www.php.net/manual/ru/function.parse-url.php
источник

VY

Vladimir Yefremov in Laravel для начинающих
Andrey Helldar
В голову приходит только распарсить: https://www.php.net/manual/ru/function.parse-url.php
значит передать ссылку в контроллер и там уже распарсить и сделать как надо

Спасибо!
источник

AH

Andrey Helldar in Laravel для начинающих
Vladimir Yefremov
значит передать ссылку в контроллер и там уже распарсить и сделать как надо

Спасибо!
В принципе, это партнерская ссылка, так что ее можно на бэке лишь валидировать, то есть проверить что пришла уже преобразованная, а вот парсить на фронте, например, при помощи пакета https://github.com/sindresorhus/query-string
источник

DS

Dmytro S in Laravel для начинающих
Я правильно понимаю, что очереди из коробки позволяют фигачить одно и то же задание воркеру бесконечно?
источник

VY

Vladimir Yefremov in Laravel для начинающих
Andrey Helldar
В принципе, это партнерская ссылка, так что ее можно на бэке лишь валидировать, то есть проверить что пришла уже преобразованная, а вот парсить на фронте, например, при помощи пакета https://github.com/sindresorhus/query-string
Спасибо!
источник

MF

Misha Fomin in Laravel для начинающих
Парни привет. Подскажите плиз установка через композер это вот уже всё установило? Должно было сайт разверуть.... Непонял про unzip.....
источник

E

Evgenii in Laravel для начинающих
apt install zip
источник

E

Evgenii in Laravel для начинающих
yum install zip
источник

D

DK in Laravel для начинающих
Misha Fomin
Парни привет. Подскажите плиз установка через композер это вот уже всё установило? Должно было сайт разверуть.... Непонял про unzip.....
архиватора не видать
источник

MF

Misha Fomin in Laravel для начинающих
понял... А как потом продолжить?
источник

MF

Misha Fomin in Laravel для начинающих
заново компзер инсталл?
источник

D

DK in Laravel для начинающих
Misha Fomin
понял... А как потом продолжить?
ещё раз запустить
источник

D

DK in Laravel для начинающих
кек
источник

MF

Misha Fomin in Laravel для начинающих
+ Спасибо!
источник

MF

Misha Fomin in Laravel для начинающих
Типа уже всё установленно? Или надо както удалить что он накачал и заново всё проделать?
источник