Silverstripe 3.2:从特定文件夹获取 ID

Silverstripe 3.2: Get ID from certain Folder

我想获取某个文件夹的 ID 以将其传递给另一个函数。

这是我的代码:

public function getFolderParentID() {
    $folderID = File::get()
            ->filter(array(
                'Filename' => 'assets/myfolder/folder/',
             ))
             ->limit(1);

    return $folderID->ID;
}

这没有return任何东西。

我也试过$folderID = Folder::get(),但这也不行。

如何通过路径名获取文件夹的 ID?

像这样调用 first() 而不是 limit(1)

public function getFolderParentID() {
    $folder = File::get()
            ->filter(array(
                'Filename' => 'assets/myfolder/folder/',
             ))->first();

    if ($folder) {
        return $folder->ID;
    }

    return false;
}

原始代码没有 return 任何东西的原因是 File::get()->limit(1) 将 return DataListFile 个对象,而不是单个 File 对象。我们需要从列表中取出 File 对象,然后请求它的 IDFile::get()->first() 将 return File 对象。