Fedya
https://github.com/Xethron/migrations-generator
Maksim (Ellrion)
Дефолтный?
Можешь свой определить. Можешь базовый. Думаю тут не принципиально
Antonio
Я в подпапку кидаю их.
нет, я имею ввиду, что ты удаляешь из репозитория первые версии проекта?
Fedya
Как миграции могут быть лишними? Они же хранят историю версий бд.
представь ситуацию что до тебя был человек который не умел правильно писать миграции на проекте, их насобиралось под сотку и но их даже ролбекнуть нельзя нормально. Потом ты садишься за проект и офигеваешь. Единственный вариант создать новые миграции по существующей бд
Arcos
нет, я имею ввиду, что ты удаляешь из репозитория первые версии проекта?
Нет никогда. Вдруг всё ухзнется и хотя бы нужно будет оживить базу по миграциям
Диего
Как миграции могут быть лишними? Они же хранят историю версий бд.
А вот до релиза удобно, там не нужна история бд
Maksim (Ellrion)
А вот до релиза удобно, там не нужна история бд
Это если ты в одного работаешь. И то спорно.
Диего
Не в одного, но что спорного
Antonio
не до релиза, а до комита тогда уж
Fedya
Ну так все зависи от ситуации когда это уместно делать и когда нет
Antonio
Не в одного, но что спорного
если каждый из вас использует для разработки свою БД, но используете вы общие таблицы. Ты вносишь изменения напрямую в свою базу, не создав миграцию. Комитишь код в репу. Напарник его выкачивает и у него ничего не работает
Antonio
Миграции, это способ подвергнуть версионности параллельно с кодом
Maksim (Ellrion)
А комиты вы тоже потом сливаете в один после релиза?)
Диего
Не надо нагонять ужасы) я не говорил что мы работаем без миграций 😂😂
adikalon
Ребят, делаю запрос к БД - получаю коллекцию. Передаю в вид и там перебираю foreach'ем. Необходимо добавить в нее поле, которое будет значением, вырезанным регулярным выражением из другого поля. Можно так сделать? И как лучше?
Евгений
можешь сделать в модели атрибут который будет возвращать значение вырезанное регулярным вырашением из другого поля, и заапендить его
Antonio
https://laravel.com/docs/5.5/eloquent-mutators#defining-an-accessor
Евгений
делаешь в модели атрибут (getYourSuperAttribute), аппендишь его (protected $appends = ['your_super']) и юзаешь
Евгений
может где то с ошибками написал правда
Евгений
а вот не помню чот
Евгений
а да, кажется не нужен
adikalon
https://laravel.com/docs/5.5/eloquent-mutators#defining-an-accessor
я чет не пойму, в примере он обращается к свойству, которого нет в классе: $firstName = $user->first_name;
Antonio
почему его нет? это динамическое свойство модели(например колонка в БД)
invariance
чет вы наркоманите
Antonio
блин, туплю
Antonio
он обращается к рещультату метода
adikalon
так метод не вызывается нигде
Antonio
🙈
adikalon
нуже
invariance
$collection->put('field_name', $value);
Antonio
обращаясь к динамическому свойству first_name ты получаешь результат выполнения метода getFirstNameAttribute
Antonio
$collection->put('field_name', $value);
одноразово. А если этоде свойство понадобится в другом месте?
adikalon
обращаясь к динамическому свойству first_name ты получаешь результат выполнения метода getFirstNameAttribute
по какому принципу оно определяет, что мне нужнополучить то что возвращает этот метод?
Antonio
прочитай внимательнее, там описано. getPropertyNameAttribute вызывается при обращении к property_name
adikalon
а понял. если я назову getOneTwoAtrribute, то необходимо будет обращаться ->one_two ?
invariance
одноразово. А если этоде свойство понадобится в другом месте?
Как он описал проблему, так я ему и подсказал
invariance
делать мутатор ради взаимодействия в view - это нарушение srp
Maksim (Ellrion)
Antonio
Как он описал проблему, так я ему и подсказал
а можешь привести пример такой модификации коллецкии с использованием регэкспа?
adikalon
да
спасиб. Это имя ни от чего не зависит (полей в таблицн и т.д.) и я его волен сам придумать?
Antonio
$collection->put('field_name', $value);
как я понимаю в результате добавится каждой модели поле field_name с одинаковым значением $value
adikalon
да
спасиб
invariance
как я понимаю в результате добавится каждой модели поле field_name с одинаковым значением $value
ничто не мешает в $value добавить форматированное по регулярке поле
invariance
вообще как бы можно и без put, внутри each просто задать свойство ручками, думаю это сработает
Antonio
ну вот пример, у меня есть модель с именем (name) в котором может быть указано Mr. Можешь привести пример, как мне получить свойство clean_name без Mr.?
adikalon
погодь, а что в него передается? ($value)
Antonio
погодь, а что в него передается? ($value)
это если у тебя имя метода совпадает с именем имеющегося поля в таблице
Antonio
посмотри пример про FullName
Antonio
public function getFullNameAttribute() { return "{$this->first_name} {$this->last_name}"; }
Antonio
погодь, а что в него передается? ($value)
и если хочешь, чтобы это поле присутствовало при переводе модели в JSON не забудь про append
adikalon
ок. И вот например мне нужно вырезать значение из поля таблицы. Поле description я обращаюсь к таблице теперь как $this? внутри этого метода или как мне там обработать?
invariance
ну вот пример, у меня есть модель с именем (name) в котором может быть указано Mr. Можешь привести пример, как мне получить свойство clean_name без Mr.?
foreach($collections as $collection) { $value = preg_replace("Mr", "", $collection->first_attr); $collection->put('second_attr', $value); }
SarcasmIO
логику из вьюхи
SarcasmIO
что у вас тут происходит, наркоманы
adikalon
не надо логику из вьюхи пихать в модель, ну йобана
логика в моделе звучит правильнее
SarcasmIO
invariance
Ребят, делаю запрос к БД - получаю коллекцию. Передаю в вид и там перебираю foreach'ем. Необходимо добавить в нее поле, которое будет значением, вырезанным регулярным выражением из другого поля. Можно так сделать? И как лучше?
invariance
а причем тут логика из вьюхи?
invariance
он ради отображения в одном месте делает мутатор на всю модель
Antonio
я понял к чем ты
invariance
ты уверен что в одном месте?
А ты уверен, что он потом не захочет без этого поля модель получать?
Antonio
но может стоит тогда говорить о том, что в модель ничего добавлять и не надо
adikalon
он ради отображения в одном месте делает мутатор на всю модель
ну там весь вид - это перебор всей модели, всех значений в таблице. ТАм список и у каждого значения должно быть дополнительное поле (точнее несколько)