Size: a a a

2020 January 17

ВС

Владислав Субботин... in Laravel Pro
Dobrik
Господа, хочу предложить вашему вниманию мой пакет дампера, похож на dd но с плюшками облегчающими жизнь. https://github.com/dobrik/extended_dumper
Уже пять релизов. А где же автотесты / автосборка? А где же соответствующее описание проекта?
источник

D

Dobrik in Laravel Pro
Будут, не переживайте
источник

ВС

Владислав Субботин... in Laravel Pro
источник

ВС

Владислав Субботин... in Laravel Pro
Делаете внешнюю ссылку на изображение, гитхаб сам всё к себе подтащит.
источник

ВС

Владислав Субботин... in Laravel Pro
Не надо это в вендор пихать
источник

kk

koe 🧑🏻 kaverna in Laravel Pro
Добрый день. Подскажите пожалуйста. У меня есть сеттер атрибута в модели User, который привязывает отношения ManyToMany

    public function setTeamsAttribute($ids)
   {
       $this->teams()->detach();
       $this->teams()->attach($ids);
   }

При редактировании User::update(['teams' => [1,2,3]]) работает отлично
А вот при создании User::create ошибка, Laravel пытается сначала создать поля в таблице отношений, а пользователя ещё нет. Ошибка user_id can not be null.

Помогите 😊
источник

ВС

Владислав Субботин... in Laravel Pro
Dobrik
Будут, не переживайте
https://github.com/dobrik/extended_dumper/blob/master/composer.json#L12 - почему в композере license MIT, а в проекте GPL v3?
источник

ВС

Владислав Субботин... in Laravel Pro
Приведите-ка всё в порядок и потом уже афишируйте ваш пакет, очень всё херовато оформлено.
источник

D

Dobrik in Laravel Pro
koe 🧑🏻 kaverna
Добрый день. Подскажите пожалуйста. У меня есть сеттер атрибута в модели User, который привязывает отношения ManyToMany

    public function setTeamsAttribute($ids)
   {
       $this->teams()->detach();
       $this->teams()->attach($ids);
   }

При редактировании User::update(['teams' => [1,2,3]]) работает отлично
А вот при создании User::create ошибка, Laravel пытается сначала создать поля в таблице отношений, а пользователя ещё нет. Ошибка user_id can not be null.

Помогите 😊
я делал так
public function setTagsAttribute($value)
   {
       self::saved(function (self $model) use ($value) {
           $model->tags()->sync($value);
       });
   }
источник

ВБ

Виктор Бурцев... in Laravel Pro
koe 🧑🏻 kaverna
Добрый день. Подскажите пожалуйста. У меня есть сеттер атрибута в модели User, который привязывает отношения ManyToMany

    public function setTeamsAttribute($ids)
   {
       $this->teams()->detach();
       $this->teams()->attach($ids);
   }

При редактировании User::update(['teams' => [1,2,3]]) работает отлично
А вот при создании User::create ошибка, Laravel пытается сначала создать поля в таблице отношений, а пользователя ещё нет. Ошибка user_id can not be null.

Помогите 😊
вместо

       $this->teams()->detach();
       $this->teams()->attach($ids)

можно делать просто $this->teams()->sync($ids).

А конкретно по задаче, мне кажется это лучше через события делать, а не через сеттеры
источник

kk

koe 🧑🏻 kaverna in Laravel Pro
Dobrik
я делал так
public function setTagsAttribute($value)
   {
       self::saved(function (self $model) use ($value) {
           $model->tags()->sync($value);
       });
   }
Спасибо, работает отлично! =)
И про sync, спасибо в двойне 😊
источник

МК

Максим Кавецкий... in Laravel Pro
Благодарю!
источник

LA

Liv Alex in Laravel Pro
подскажите как удобнее организоваться в такой ситуации - есть сущность транзакции и сущность сотрудник. Транзакции могут быть нескольких типов: зарплата, аванс, штраф, покупка и т.п. Изначально хотел делать через наследование всех типов транзакций от базовой модели. Но сейчас думаю - а как прописать связи для сотрудника к, например, авансам. Если просто прописывать как к таблице транзакций, но указать класс модели аванса, по связи все равно прилетят все транзакции
источник

SS

Serg Serdyuk in Laravel Pro
Liv Alex
подскажите как удобнее организоваться в такой ситуации - есть сущность транзакции и сущность сотрудник. Транзакции могут быть нескольких типов: зарплата, аванс, штраф, покупка и т.п. Изначально хотел делать через наследование всех типов транзакций от базовой модели. Но сейчас думаю - а как прописать связи для сотрудника к, например, авансам. Если просто прописывать как к таблице транзакций, но указать класс модели аванса, по связи все равно прилетят все транзакции
каждый тип это своя модель? тогда можно пихать имя класса этой модели в таблицу транзакций, какое нить поле type
источник

LA

Liv Alex in Laravel Pro
Serg Serdyuk
каждый тип это своя модель? тогда можно пихать имя класса этой модели в таблицу транзакций, какое нить поле type
есть такое поле
источник

SS

Serg Serdyuk in Laravel Pro
и дальше отнощение hasMany(...)->where('type', self::class)
источник

SS

Serg Serdyuk in Laravel Pro
точнее where  самом hasMany()
источник

LA

Liv Alex in Laravel Pro
Serg Serdyuk
точнее where  самом hasMany()
в смысле?
Сейчас оно так, как ты сначала написал
public function prepayments () {
   return $this->hasMany(Prepayment::class, 'employee_id', 'id')->where('transaction_type', Prepayment::class)
}

но мне не нравится, что теперь везде нужно писать $employee->prepayments->get(). Вот это последнего get() я и хочу избежать
источник

SS

Serg Serdyuk in Laravel Pro
а, понял.. я чуть задачу сначала не вкурил
тогда аксессором

public function _prepayments () {
   return $this->hasMany(Prepayment::class, 'employee_id', 'id')->where('transaction_type', Prepayment::class)
}


public function getPrepaymentsAttribute() {
 return $this->_prepayments()->get();
}

и в $employee->prepayments должно по идее быть то что нужно
источник

EG

Egor Gruzdev in Laravel Pro
Serg Serdyuk
и дальше отнощение hasMany(...)->where('type', self::class)
источник