小编Dan*_* R.的帖子

spatie/laravel-medialibrary 更改主键

我正在使用包spatie/laravel-medialibrary,我想更改其名为 Media 的模式上的 PrimaryKey,而不编辑包 src 文件。

在我的项目中,我使用 uuid 作为所有模型的主键,因此自然地,我想对此包提供的 Media.php 模型执行相同的操作。

我已经更改了迁移以反映这一点,通过删除该行$table->bigInteger('id')并将其更改$table->uuid('uuid')->nullable();table->uuid('uuid')->unique()->primary();

但是,现在我还想让模型知道我正在使用不同的密钥,通过设置protected $primaryKey = 'uuid';protected $keyType = 'string';但我找不到在 Media.php 模型的包 src 文件之外执行此操作的方法

基本上,我最终想要做的只是实现 HasMedia 接口并在我的 Profile 模型上使用 InteractsWithMedia 特征,如下所示:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;

class Profile extends Model implements HasMedia
{
    use InteractsWithMedia;
}
Run Code Online (Sandbox Code Playgroud)

关于如何实现这一目标有什么建议吗?

谢谢。

php uuid primary-key laravel laravel-medialibrary

2
推荐指数
1
解决办法
2682
查看次数

Laravel Storage::files() 在不应该显示的时候显示点文件

我试图使用 Laravel 的Storage::files('folder')方法获取文件夹中所有文件的列表,但它返回所有文件,包括 .gitkeep

我想找到一种排除 dotFiles 的方法,并且我知道该Storage::files()方法有一个辅助参数应该完全做到这一点,因为它是默认设置的,在这里:

public function files($directory, $hidden = false)
{
    return iterator_to_array(
        Finder::create()->files()->ignoreDotFiles(! $hidden)->in($directory)->depth(0)->sortByName(),
        false
    );
}
Run Code Online (Sandbox Code Playgroud)

……但这似乎不适合我!

有人遇到过这个问题并且可以帮助一个人吗?提前致谢!

php filesystems laravel

1
推荐指数
1
解决办法
2228
查看次数