我正在使用包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)
关于如何实现这一目标有什么建议吗?
谢谢。
我试图使用 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)
……但这似乎不适合我!
有人遇到过这个问题并且可以帮助一个人吗?提前致谢!