首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法理解为什么我得到了一个实质性错误

无法理解为什么我得到了一个实质性错误
EN

Stack Overflow用户
提问于 2021-11-14 23:49:40
回答 2查看 351关注 0票数 0

我在运行laravel,我的页面给了我一个实质性的错误。唯一的问题是,我没有运行任何字符串转换命令什么的.

我甚至尝试从tpl文件中删除所有代码,并且我得到了错误,但是当我删除呈现()函数的循环并将$output (刀片模板遍历的信息)设置为$output=[];时,我就不会得到错误。( PS:是现场直播)

但是,奇怪的是,如果我完全删除构建$output的循环,就不会得到错误。但是,如果我只是手动设置$output = [],这将产生与删除循环相同的结果。然后得到子字符串错误。

老实说,模式没有意义,下面的错误消息日志也没有意义.我完全迷茫和沮丧..。有人能帮我理解我为什么要收到这条短信吗?

代码语言:javascript
复制
<!doctype html>
<html class="theme-light">
<!--
Facade\Ignition\Exceptions\ViewException: substr() expects parameter 1 to be string, object given (View: C:\xampp\htdocs\mws\resources\views\user\filemanager\index.blade.php) in file C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Support\Str.php on line 222

#0 [internal function]: Illuminate\Foundation\Bootstrap\HandleExceptions-&gt;handleError(2, 'substr() expect...', 'C:\\xampp\\htdocs...', 222, Array)
#1 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Support\Str.php(222): substr(Object(Illuminate\Filesystem\FilesystemAdapter), -6)
#2 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Database\DatabaseManager.php(103): Illuminate\Support\Str::endsWith(Object(Illuminate\Filesystem\FilesystemAdapter), Array)
#3 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Database\DatabaseManager.php(77): Illuminate\Database\DatabaseManager-&gt;parseConnectionName(Object(Illuminate\Filesystem\FilesystemAdapter))
#4 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Model.php(1653): Illuminate\Database\DatabaseManager-&gt;connection(Object(Illuminate\Filesystem\FilesystemAdapter))
#5 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Model.php(1619): Illuminate\Database\Eloquent\Model::resolveConnection(Object(Illuminate\Filesystem\FilesystemAdapter))
#6 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Concerns\HasAttributes.php(1212): Illuminate\Database\Eloquent\Model-&gt;getConnection()
#7 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Concerns\HasAttributes.php(1124): Illuminate\Database\Eloquent\Model-&gt;getDateFormat()
#8 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Concerns\HasAttributes.php(189): Illuminate\Database\Eloquent\Model-&gt;asDateTime('2021-11-14 22:5...')
#9 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Concerns\HasAttributes.php(151): Illuminate\Database\Eloquent\Model-&gt;addDateAttributesToArray(Array)
#10 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Model.php(1485): Illuminate\Database\Eloquent\Model-&gt;attributesToArray()
#11 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Concerns\HasAttributes.php(319): Illuminate\Database\Eloquent\Model-&gt;toArray()
#12 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Model.php(1485): Illuminate\Database\Eloquent\Model-&gt;relationsToArray()
#13 C:\xampp\htdocs\mws\vendor\livewire\livewire\src\HydrationMiddleware\HydratePublicProperties.php(229): Illuminate\Database\Eloquent\Model-&gt;toArray()
#14 C:\xampp\htdocs\mws\vendor\livewire\livewire\src\HydrationMiddleware\HydratePublicProperties.php(209): Livewire\HydrationMiddleware\HydratePublicProperties::filterData(Object(App\Http\Livewire\Filemanager), 'selectedUser')
#15 C:\xampp\htdocs\mws\vendor\livewire\livewire\src\HydrationMiddleware\HydratePublicProperties.php(102): Livewire\HydrationMiddleware\HydratePublicProperties::dehydrateModel(Object(App\Models\User), 'selectedUser', Object(Livewire\Response), Object(App\Http\Livewire\Filemanager))
#16 [internal function]: Livewire\HydrationMiddleware\HydratePublicProperties::Livewire\HydrationMiddleware\{closure}(Object(App\Models\User), 'selectedUser')
#17 C:\xampp\htdocs\mws\vendor\livewire\livewire\src\HydrationMiddleware\HydratePublicProperties.php(130): array_walk(Array, Object(Closure))
#18 C:\xampp\htdocs\mws\vendor\livewire\livewire\src\LifecycleManager.php(141): Livewire\HydrationMiddleware\HydratePublicProperties::dehydrate(Object(App\Http\Livewire\Filemanager), Object(Livewire\Response))
#19 C:\xampp\htdocs\mws\vendor\livewire\livewire\src\LivewireManager.php(106): Livewire\LifecycleManager-&gt;initialDehydrate()
#20 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php(261): Livewire\LivewireManager-&gt;mount('filemanager')
#21 C:\xampp\htdocs\mws\resources\views/user/filemanager/index.blade.php(10): Illuminate\Support\Facades\Facade::__callStatic('mount', Array)
#22 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Filesystem\Filesystem.php(107): require('C:\\xampp\\htdocs...')
#23 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Filesystem\Filesystem.php(108): Illuminate\Filesystem\Filesystem::Illuminate\Filesystem\{closure}()
#24 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\View\Engines\PhpEngine.php(58): Illuminate\Filesystem\Filesystem-&gt;getRequire('C:\\xampp\\htdocs...', Array)
#25 C:\xampp\htdocs\mws\vendor\livewire\livewire\src\ComponentConcerns\RendersLivewireComponents.php(35): Illuminate\View\Engines\PhpEngine-&gt;evaluatePath('C:\\xampp\\htdocs...', Array)
#26 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\View\Engines\CompilerEngine.php(61): Livewire\CompilerEngineForIgnition-&gt;evaluatePath('C:\\xampp\\htdocs...', Array)
#27 C:\xampp\htdocs\mws\vendor\facade\ignition\src\Views\Engines\CompilerEngine.php(37): Illuminate\View\Engines\CompilerEngine-&gt;get('C:\\xampp\\htdocs...', Array)
#28 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\View\View.php(139): Facade\Ignition\Views\Engines\CompilerEngine-&gt;get('C:\\xampp\\htdocs...', Array)
#29 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\View\View.php(122): Illuminate\View\View-&gt;getContents()
#30 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\View\View.php(91): Illuminate\View\View-&gt;renderContents()
#31 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Http\Response.php(69): Illuminate\View\View-&gt;render()
#32 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Http\Response.php(35): Illuminate\Http\Response-&gt;setContent(Object(Illuminate\View\View))
#33 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Routing\Router.php(794): Illuminate\Http\Response-&gt;__construct(Object(Illuminate\View\View), 200, Array)
#34 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Routing\Router.php(763): Illuminate\Routing\Router::toResponse(Object(Illuminate\Http\Request), Object(Illuminate\View\View))
#35 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Routing\Router.php(695): Illuminate\Routing\Router-&gt;prepareResponse(Object(Illuminate\Http\Request), Object(Illuminate\View\View))
#36 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(128): Illuminate\Routing\Router-&gt;Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#37 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Routing\Middleware\SubstituteBindings.php(50): Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#38 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Routing\Middleware\SubstituteBindings-&gt;handle(Object(Illuminate\Http\Request), Object(Closure))
#39 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Auth\Middleware\Authenticate.php(44): Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#40 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Auth\Middleware\Authenticate-&gt;handle(Object(Illuminate\Http\Request), Object(Closure))
#41 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\VerifyCsrfToken.php(78): Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#42 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken-&gt;handle(Object(Illuminate\Http\Request), Object(Closure))
#43 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\View\Middleware\ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#44 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\View\Middleware\ShareErrorsFromSession-&gt;handle(Object(Illuminate\Http\Request), Object(Closure))
#45 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Session\Middleware\AuthenticateSession.php(58): Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#46 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Session\Middleware\AuthenticateSession-&gt;handle(Object(Illuminate\Http\Request), Object(Closure))
#47 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Session\Middleware\StartSession.php(121): Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#48 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Session\Middleware\StartSession.php(64): Illuminate\Session\Middleware\StartSession-&gt;handleStatefulRequest(Object(Illuminate\Http\Request), Object(Illuminate\Session\Store), Object(Closure))
#49 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Session\Middleware\StartSession-&gt;handle(Object(Illuminate\Http\Request), Object(Closure))
#50 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#51 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse-&gt;handle(Object(Illuminate\Http\Request), Object(Closure))
#52 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Cookie\Middleware\EncryptCookies.php(67): Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#53 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Cookie\Middleware\EncryptCookies-&gt;handle(Object(Illuminate\Http\Request), Object(Closure))
#54 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(103): Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#55 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Routing\Router.php(697): Illuminate\Pipeline\Pipeline-&gt;then(Object(Closure))
#56 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Routing\Router.php(672): Illuminate\Routing\Router-&gt;runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#57 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Routing\Router.php(636): Illuminate\Routing\Router-&gt;runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route))
#58 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Routing\Router.php(625): Illuminate\Routing\Router-&gt;dispatchToRoute(Object(Illuminate\Http\Request))
#59 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(167): Illuminate\Routing\Router-&gt;dispatch(Object(Illuminate\Http\Request))
#60 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(128): Illuminate\Foundation\Http\Kernel-&gt;Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#61 C:\xampp\htdocs\mws\vendor\livewire\livewire\src\DisableBrowserCache.php(19): Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#62 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Livewire\DisableBrowserCache-&gt;handle(Object(Illuminate\Http\Request), Object(Closure))
#63 C:\xampp\htdocs\mws\vendor\barryvdh\laravel-debugbar\src\Middleware\InjectDebugbar.php(60): Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#64 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Barryvdh\Debugbar\Middleware\InjectDebugbar-&gt;handle(Object(Illuminate\Http\Request), Object(Closure))
#65 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21): Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#66 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest-&gt;handle(Object(Illuminate\Http\Request), Object(Closure))
#67 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull-&gt;handle(Object(Illuminate\Http\Request), Object(Closure))
#68 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21): Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#69 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TrimStrings.php(40): Illuminate\Foundation\Http\Middleware\TransformsRequest-&gt;handle(Object(Illuminate\Http\Request), Object(Closure))
#70 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Foundation\Http\Middleware\TrimStrings-&gt;handle(Object(Illuminate\Http\Request), Object(Closure))
#71 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#72 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ValidatePostSize-&gt;handle(Object(Illuminate\Http\Request), Object(Closure))
#73 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance.php(86): Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#74 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance-&gt;handle(Object(Illuminate\Http\Request), Object(Closure))
#75 C:\xampp\htdocs\mws\vendor\fruitcake\laravel-cors\src\HandleCors.php(38): Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#76 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Fruitcake\Cors\HandleCors-&gt;handle(Object(Illuminate\Http\Request), Object(Closure))
#77 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Http\Middleware\TrustProxies.php(39): Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#78 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Http\Middleware\TrustProxies-&gt;handle(Object(Illuminate\Http\Request), Object(Closure))
#79 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(103): Illuminate\Pipeline\Pipeline-&gt;Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#80 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(142): Illuminate\Pipeline\Pipeline-&gt;then(Object(Closure))
#81 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(111): Illuminate\Foundation\Http\Kernel-&gt;sendRequestThroughRouter(Object(Illuminate\Http\Request))
#82 C:\xampp\htdocs\mws\public\index.php(52): Illuminate\Foundation\Http\Kernel-&gt;handle(Object(Illuminate\Http\Request))
#83 {main}

重要的边注奇怪的是。此循环通过FTP连接以收集文件夹。如果我将FTP用户凭据更改为其他用户的凭据,则不会得到错误。因此,这是在这个用户的目录(似乎),但boh用户的目录只有一个文件夹,同样的文件夹名称。所以,从我所能看到的两者之间看,一切都是吻合的。

我也可以用FileZilla登录到这两个网站。所以我想这不是服务器问题..。

第二个站点备注我查看了FTP服务器日志,并注意到正在发生一些不同的事情。

如果登录到1用户(不提供错误),我只是看到登录确认,然后注销.但是我的用户给出了问题,我注意到不同的事情发生了:

代码语言:javascript
复制
Nov 15 01:56:51 node1 pure-ftpd[7777]: (?@10.0.0.13) [INFO] test is now logged in
Nov 15 01:56:51 node1 pure-ftpd[7777]: (test@10.0.0.13) [INFO] Can't change directory to test.php: Not a directory
Nov 15 01:56:51 node1 pure-ftpd[7777]: (test@10.0.0.13) [INFO] Logout.

更奇怪的是,我要求laravel查询的目录是/目录,其中只有域文件夹。test.php在域目录中,所以现在甚至没有被查询?

filemanager.index.blade

代码语言:javascript
复制
<x-narrow-layout>    
    <x-slot name="content">
        @livewire('filemanager')
    </x-slot>
</x-narrow-layout>

滤波器控制器

代码语言:javascript
复制
namespace App\Http\Livewire;

use Livewire\Component;
use Illuminate\Support\Facades\Auth;
use App\Models\User;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Hash;
use App\Http\Livewire\DataTable\WithPerPagePagination;
use App\Http\Livewire\DataTable\WithSorting;
use App\Http\Livewire\DataTable\WithCachedRows;

class Filemanager extends Component
{
    use WithSorting, WithCachedRows;
    
    public $showEditModal = false;
    public $showDeleteModal = false;
    public $selectedUserId = '';
    public $selectedUser = NULL;
    public $openDirectory = '';
    public $editing;
    public $editingFile;
    public $selected = [];
    public $selectPage = false;
    public $selectAll = false;
    
    public $filters = [
        'search' => ''
    ];
    
    protected $queryString = ['selectedUserId', 'openDirectory'];

    public function rules() {
        $rules = [
            'editing' => 'nullable'
        ];

        return $rules;
    }
    
    public function selectUserFtp($user_id){
        $this->selectedUserId = $user_id == $this->selectedUserId ? '' : $user_id;
        $this->openDirectory = '';
    }
    
    public function updateActivePath($path){
        $this->openDirectory = $path;
    }
    
    public function editFile($file){
        $this->editing = $this->selectedUser->MainFTPUser->GetFileContent($file);
        $this->editingFile = $file;   
        $this->showEditModal = true;
    }

    public function saveFile() {
        $this->validate();
        $this->selectedUser->MainFTPUser->SaveFileContent($this->editingFile, $this->editing);
        
        $this->showEditModal = false;
        
        $this->editing = '';
        $this->editingFile ='';
    }

    public function duplicateFile($file) {
        $this->editing = $this->selectedUser->MainFTPUser->GetFileContent($file);
        $this->editingFile = $file;
        
        $this->selectedUser->MainFTPUser->SaveFileContent($this->editingFile.'_copy', $this->editing);
        
        $this->editing = '';
        $this->editingFile ='';
    }

    public function deleteFile($file) {
        $this->selectedUser->MainFTPUser->deleteFile($file);
    }
    
    public function updatedSelectPage($value) {
        
            $this->selected = $value 
                    ? $this->Rows->pluck('id')->map(fn($id) => (string) $id)
                    : $this->selected = [];
    }
    
    public function render()
    {
        $sub_accounts_array = User::query()
                                ->where(function ($query) {
                                    $query->wherein('id', Auth::user()->SubUsersIDS)
                                    ->orWhere('id', Auth::user()->id);
                                })
                                ->orderBy('username')
                                ->get();
        
        $this->selectedUser = $this->selectedUserId!='' ? User::find($this->selectedUserId) : NULL;
                              
        $directoryContent = [];
        $directoryDirectories = [];
        $output = [];
        
        if($this->selectedUser!=NULL){
            $directoryDirectories = $this->selectedUser->MainFTPUser->DirectoryFolders($this->openDirectory);
            $directoryContent = $this->selectedUser->MainFTPUser->DirectoryFiles($this->openDirectory);
        }
        
        $output = [];
        foreach($directoryDirectories as $folder){
            $output[] = [
                'id' =>   md5($folder['path']),
                'path' =>   $folder['path'],
                'label' =>   $folder['label'],
                'size' =>   '1 kb',
                'permissions' =>   '0000',
                'date' =>   $this->selectedUser->MainFTPUser->getDateModified($folder['path']),
                'type' =>   'folder',
            ];
        }
        foreach($directoryContent as $file){
            $output[] = [
                'id' =>   md5($file['path']),
                'path' =>   $file['path'],
                'label' =>   $file['label'],
                'size' =>   $this->selectedUser->MainFTPUser->getFileSize($file['path']),
                'permissions' =>   '0000',
                'date' =>   $this->selectedUser->MainFTPUser->getDateModified($file['path']),
                'type' =>   'file',
            ];
        }

        return view('livewire.filemanager')
                ->with('sub_accounts', $sub_accounts_array)
                ->with('directoryFilesAndFolders', $output);
    }
}
EN

回答 2

Stack Overflow用户

发布于 2021-11-15 05:27:39

在错误堆栈中:

内部函数: Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(2,'substr()

.,‘C:\xampp\htdocs.’,222,)

#1 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Support\Str.php(222):substr(Object(Illuminate\Filesystem\FilesystemAdapter),-6)

#2 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Database\DatabaseManager.php(103):Illuminate\Support\Str::endsWith(Object(Illuminate\Filesystem\FilesystemAdapter),阵列)

#3 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Database\DatabaseManager.php(77):Illuminate\Database\DatabaseManager->parseConnectionName(Object(Illuminate\Filesystem\FilesystemAdapter))

#4 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Model.php(1653):Illuminate\Database\DatabaseManager->connection(Object(Illuminate\Filesystem\FilesystemAdapter))

#5 C:\xampp\htdocs\mws\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Model.php(1619):Illuminate\Database\Eloquent\Model::resolveConnection(Object(Illuminate\Filesystem\FilesystemAdapter))

..。

Illuminate\Support\Str::endsWith方法是在Illuminate\Filesystem\FilesystemAdapter对象而不是字符串上调用的。

FilesystemAdapter首先在堆栈的#5 (Illuminate\Database\Eloquent\Model::resolveConnection)中使用,然后通过。下面有几个雄辩的内部呼吁。从较低的级别(#13 - #19),您可以看到一些实时通话。

我的猜测是,将livewire与Filemanager类结合使用可能会导致错误地使用FilesystemAdapter作为数据库连接字符串。

票数 1
EN

Stack Overflow用户

发布于 2021-11-15 20:14:50

好了,伙计们,我缩小了范围。基于@koala的回答暗示它在模型中,我有两个功能:

代码语言:javascript
复制
$directoryDirectories = $this->selectedUser->MainFTPUser->DirectoryFolders($this->openDirectory);
$directoryContent = $this->selectedUser->MainFTPUser->DirectoryFiles($this->openDirectory);

如果我把他们排除在外,一切都会很顺利。为什么我不明白,因为对任何其他用户来说,它都是完美的.

但我将模型中的所有“函数”都移出了模型,比如添加和删除FTP用户,只留下了模型中的属性和关系,其余的都移到了livewire控制器上。

这样做后,它解决了我的问题,我不再有实质性的问题。

我还是不明白为什么它是如此不可预测的行为,但谢谢你的提示。这让我找到了问题所在。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69968131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档