https://laracasts.com/series/30-days-to ... pisodes/30
)).
Я заполнил базу данных с помощью 20 поддельных работодателей и вакансий — у каждого был случайный логотип.
Поначалу это работало отлично.
Но когда я регистрирую нового пользователя и создаю новую вакансию с загрузкой логотипа, он отображается правильно для моей работы,
однако остальные выбранные работодатели теряют свои логотипы (они не показывают изображения).
[code].env[/code]
Код: Выделить всё
APP_ENV=local
APP_DEBUG=true
APP_URL=http://127.0.0.1:8000
FILESYSTEM_DISK=public
ASSET_URL="${APP_URL}/storage"
DB_CONNECTION=sqlite
[code]EmployerFactory.php[/code]
Код: Выделить всё
class EmployerFactory extends Factory
{
public function definition(): array
{
return [
'name' => fake()->company(),
'logo' => 'logos/default-' . rand(1, 10) . '.jpg',
'user_id' => User::factory(),
];
}
}
[code]resources/views/components/employer-logo.blade.php[/code]
Код: Выделить всё
@props(['employer', 'width' => 90])
[img]{{ $employer-[/img]
logo
? (Str::startsWith($employer->logo, 'http')
? $employer->logo
: (Str::startsWith($employer->logo, 'logos/')
? asset($employer->logo)
: asset('storage/' . $employer->logo)))
: asset('logos/default-' . rand(1, 10) . '.jpg')) }}"
alt="{{ $employer->name }} logo"
class="rounded-xl"
width="{{ $width }}"
>
[code]resources/views/components/job-card.blade.php[/code]
Код: Выделить всё
- Когда я посещаю страницу вакансий после загрузки логотипа,
появляется только мой загруженный логотип. - Остальные 20 поддельных вакансий не показывают изображения (тег не имеет допустимого src).
- В базе данных старые фейковые работодатели имеют такие пути:
Код: Выделить всё
logos/default-8.jpg logos/default-3.jpg - Загруженный файл сохраняется следующим образом:
Код: Выделить всё
logos/B0GoHElRpVuZPNpKkk9IUWSsAz0q9YInQgjk9blh.jpg
Код: Выделить всё
php artisan storage:link
php artisan view:clear
Код: Выделить всё
public/logos/
public/storage/logos/
- Поддельные работодатели по-прежнему должны показывать свои случайные логотипы по умолчанию из /public/logos.
- Мой загруженный логотип должен быть взят из /storage/logos.
- Изменение assets($employer->logo) в Storage::url($employer->logo)
- Настройка ASSET_URL="${APP_URL}/storage"
- Перемещение файлов между public/logos и хранилищем/app/public/logos
- Очистка кеша и несколько представлений раз
Почему Laravel показывает только загруженный логотип, а не поддельные?
Есть ли правильный способ обработки логотипов из /public/logos и /storage/logos вместе?
Был бы признателен, если бы кто-нибудь объяснил правильную логику или Blade синтаксис для этого случая.
Подробнее здесь: https://stackoverflow.com/questions/798 ... s-lose-the
Мобильная версия