Size: a a a

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

2020 April 15

ИЛ

Иван Лещенко... in Laravel для начинающих
"Как использовать файловое хранилище в Laravel" -> "laravel file storage"
"General error: 1215 Cannot add foreign key constraint" -> "Cannot add foreign key constraint laravel"
"Что делает метод Foo в классе Bar" -> "laravel api Bar" -> Ctrl + F -> Foo
"Как сделать разделение ролей/авторизацию в Laravel" -> https://laravel.com/docs/7.x
источник

😁

😁Даниил ◠‿°... in Laravel для начинающих
🙁🤔
источник

А

Артур in Laravel для начинающих
привет.
насколько корректно использовать подход создания dto фильтра, для передачи его в сервис, где уже будет проходить фильтрация по дто полям?
или не смысла нет и проще перекинуть массив, а сервис уже сам будет там учитывать поля
по сути валидация прошла уже в реквесте.
тогда дто тут уже оверхед дает, не?
return ModelResource::collection(
   $service->search(
       new FilterDto($request->validated())
)
);
источник

А

Артур in Laravel для начинающих
и вообще, как правильно будет
вот есть у нас controller [validated array] => service \w injected repository [create filterDto] => repository \w eloquent => apply filterDto ?
или сразу репо инжектить в контроллер !?
источник

MD

Michael Domansky in Laravel для начинающих
Привет.
Вопрос про datetime и casts в модели.

Храним даты в дефолтном формате БД, в модель получаем также. Касты применяются только если объект модели перегнать в массив (или джейсон).
Но получается, что половина вьюх (которую не перегоняем в массив) будет работать с объектом, а другая половина вью (где используются даты), будет работать с массивами?

Или по хорошему во вьюхах всегда надо использовать массивы? Вроде нет, потому что во вьюхе я могу дернуть зависимую таблицу и это удобно.
источник

SS

Serg Serdyuk in Laravel для начинающих
Michael Domansky
Привет.
Вопрос про datetime и casts в модели.

Храним даты в дефолтном формате БД, в модель получаем также. Касты применяются только если объект модели перегнать в массив (или джейсон).
Но получается, что половина вьюх (которую не перегоняем в массив) будет работать с объектом, а другая половина вью (где используются даты), будет работать с массивами?

Или по хорошему во вьюхах всегда надо использовать массивы? Вроде нет, потому что во вьюхе я могу дернуть зависимую таблицу и это удобно.
А зачем для datetime использовать casts?
источник

MD

Michael Domansky in Laravel для начинающих
Serg Serdyuk
А зачем для datetime использовать casts?
чтобы на фронте показать datetimepicker в русской локали
источник

MD

Michael Domansky in Laravel для начинающих
не только показать, но и приянть от пользователя и записать в БД с конвертацией в нужный формат.
источник

MD

Michael Domansky in Laravel для начинающих
касты для того, чтобы не вручную все эти перегоны делать
источник

SS

Serg Serdyuk in Laravel для начинающих
ну тут лучше смотреть в сторону мутаторов и аксессоров
источник

SS

Serg Serdyuk in Laravel для начинающих
для дат есть массив $dates, а дальше уже через аксессоры выводить в нужном формате, через мутаторы - сохранять
источник

MD

Michael Domansky in Laravel для начинающих
Serg Serdyuk
для дат есть массив $dates, а дальше уже через аксессоры выводить в нужном формате, через мутаторы - сохранять
А можешь дать пример?
Что-то я не вижу вот тут https://laravel.com/docs/5.8/eloquent-mutators#date-mutators
источник

SS

Serg Serdyuk in Laravel для начинающих
я про обычные, не обязательно именно date
можно же создать метод getMyDateAttribute() какой нить, и на фронте вызывать $model->my_date
источник

MD

Michael Domansky in Laravel для начинающих
на фронте я могу сделать ->format('d.m.Y H:i') и показать в нужном формате во вьюхе.
источник

MD

Michael Domansky in Laravel для начинающих
а при сохранении могу сделать createCarbonFrom() и записать в нужном формате.
источник

MD

Michael Domansky in Laravel для начинающих
Но это вручную. А можно ли сделать автоматом? Чтобы без ручной обработки?
источник

SS

Serg Serdyuk in Laravel для начинающих
ну так сеттеры и геттеры это и сделают, один раз метод напилить и потом он будет вызываться
public function getMyDateAttribute() {return $this->created_at->format('...')}
и везде дальше вызывать просто $model->my_date

и также сеттер, типа setCreatedAtAttribute($value) {$this->attributes['created_at'] = Carbon::createFrom...($value);}
хотя честно говоря не помню, сработает ли сеттер если атрибут есть в $dates, это надо проверить
источник

MD

Michael Domansky in Laravel для начинающих
Спасибо. Попробую.
источник

MD

Michael Domansky in Laravel для начинающих
А это получается, что для каждого атрибута нужно писать свой сет метод? А если у меня 100500 атрибутов, то столько же методов?
источник

SS

Serg Serdyuk in Laravel для начинающих
по идее да, не встречал каких то групповых сеттеров, может кто то извращался конечно...
источник