lisa-fehr/gallery

现有网站的画廊包

安装: 9

依赖项: 0

建议者: 0

安全: 0

星星: 0

关注者: 1

分支: 0

开放问题: 0

类型:项目

3.0 2023-08-22 20:30 UTC

This package is auto-updated.

Last update: 2024-09-11 05:40:28 UTC


README

重创建画廊项目的打包版本

Screen Shot 2024-05-19 at 3 41 36 AM

要求

  • PHP ^8.1
  • Laravel 9 及以上
  • GD 库 *

入门指南

composer require lisa-fehr/gallery

用法

将 css 和 js 文件添加到您的布局文件中

<link rel="stylesheet" href="{{ asset('vendor/lisa-fehr/gallery/css/app.css') }}" type="text/css" media="screen"/>
...
<script src="{{mix('js/app.js', 'vendor/lisa-fehr/gallery')}}"></script>

将画廊组件添加到名为 portfolio 的视图中

<div id="gallery-app" class="text-sm w-full" data-filters="{{$filter['tags'] ?? ''}}"></div>

您还可以使用不一致的模式覆盖路由

{
    "tag": "path from root - no starting slash needed"
}
<div id="gallery-app" class="text-sm w-full" 
    data-filters="{{$filter['tags'] ?? ''}}"
    data-routes='{"portfolio":"portfolio","Folder2005":"Folder\/2005"}'
></div>

添加到网络路由文件中

主页不使用任何过滤器,应显示所有内容。

Route::get('portfolio', function () {
    return view('portfolio');
})->name('portfolio');

附加页面:路由名称必须与 uber_tags 表中的 name 字段匹配。必须包含当前标签在开头。

Route::get('photos', function () {
    return view('portfolio')
        ->with('filter', [
            'tags' => 'photos,California,California2005,California2009,California2014'
        ]);
})->name('photos');

或使用 Tag 模型获取所有子标签

Route::get('California', function () {
    $children = UberTags::where('name', 'california')->allChildren()->pluck('name')->implode(',');
    return view('portfolio')
        ->with('filter', [
            'tags' => 'california,' . $children
        ]);
})->name('California');

如果标签的命名路由不存在,则不会显示在导航中,以防止链接损坏。

开发

运行迁移

php artisan migrate --path=vendor/lisa-fehr/gallery/src/database/migrations

运行种子文件

php artisan db:seed --class=LisaFehr\\Gallery\\Database\\Seeders\\GalleryDatabaseSeeder

故障排除

缺失的缩略图或图像损坏

  • 检查 .env 中的 APP_URL 是否正确。例如:包含端口号。
  • 确保已运行:php artisan storage:linkphp artisan images:generate

使用 UberTags 模型返回错误

Illuminate\Database\QueryException SQLSTATE[HY000]: 通用错误:1 在非聚合查询上使用 HAVING 子句

不要使用 sqlite。检查 .env 文件并填写

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=