Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 10.01.2018 11:24:28

Отдать ссылку на картинку

Добрый день. тут недавно в какой то теме было обсуждение насчет того что сервер должен отдавать картинки.
Так вот, я отдаю не сами картинки, а ссылки на них так:

PHP
// Model
public function getImageAttribute()
{
    return 
asset(self::IMAGE_PATH $this->id '.jpg')
}

Вопрос в том, таким образом я отдаю только ссылку на картинку, или php читает эту картинку, а потом отдает ее?
Каким образом вы отдаете картинки?
Спасибо!

Не в сети

#2 10.01.2018 13:54:50

Re: Отдать ссылку на картинку

Каким образом вы отдаете картинки?

адресом на статический ресурс

Вопрос в том, таким образом я отдаю только ссылку на картинку, или php читает эту картинку, а потом отдает ее?

отдается ссылка.

Делать мутаторы в модели для уточнения адреса ресурса - плохая практика.

Не в сети

#3 10.01.2018 17:19:24

Re: Отдать ссылку на картинку

  1. Делать мутаторы в модели для уточнения адреса ресурса — плохая практика.

Как тогда по другому отдавать ссылку на картинку?

Не в сети

#4 10.01.2018 17:38:22

Re: Отдать ссылку на картинку

Как тогда по другому отдавать ссылку на картинку?

я тоже представить не могу

Не в сети

#5 10.01.2018 17:53:16

Re: Отдать ссылку на картинку

Нужно не мутатор использовать, а написать функцию в модели, типо..

public function getUrl()
{
 return asset(self::IMAGE_PATH . $this->id . '.jpg');
}

Не в сети

#6 10.01.2018 18:24:00

Re: Отдать ссылку на картинку

Нужно не мутатор использовать, а написать функцию в модели, типо..

да, как минимум функцию в модели.

Как тогда по другому отдавать ссылку на картинку?

В зависимости от того, насколько сильно требуется чистый код.
Я обычно это делаю где-то в сервисном слое, либо в ресурсах, метод toArray (https://laravel.com/docs/5.5/eloquent-resources), либо в слое файлового апи (если он имеется и/или необходим).
Но и простого метода в модельке для простых случаев будет достаточно.

P.S. правда я использую фрактал http://fractal.thephpleague.com вместо ресурсов ларавела.

Изменено covobo (10.01.2018 18:28:01)

Не в сети

#7 10.01.2018 18:32:22

Re: Отдать ссылку на картинку

  1. Нужно не мутатор использовать, а написать функцию в модели, типо…

Спасибо! для меня с мутатором как то по удобнее было. В шаблоне {{ $model->image }} и все.

  1. В зависимости от того, насколько сильно требуется чистый код.
  2. Я обычно это делают где-то в сервисном слое, либо в ресурсах, метод toArray (https://laravel.com/docs/5.5/eloquent-resources), либо в слое файлового апи (если он имеется и/или необходим).
  3. Но и простого метода в модельке для простых случаев будет достаточно.

Спасибо за ответ!
Я не могу никак перейти на 5.5, по этому ресурсы не доступны.

  1. P.S. правда я использую фрактал http://fractal.thephpleague.com/) вместо ресурсов ларавела.

Не разу с ним не работал, надо будит попробовать.

Не в сети

Подвал раздела