提前感谢您提供有用的建议。我使用Laravel Livewire创建组件,使用Jetstrap对需要它的路由进行身份验证。
目前我只设置了一个用于测试身份验证的路由,但在我登录查看该路由后,我收到以下错误:
Too few arguments to function Livewire\LivewireManager::mount(), 0 passed in /var/www/mvp/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php on line 261 and at least 1 expected
这似乎源自 getInstance() 函数内部的 LivewireManager 类:
public function getInstance($component, $id)
{
$componentClass = $this->getClass($component);
throw_unless(class_exists($componentClass), new ComponentNotFoundException(
"Component [{$component}] class not found: [{$componentClass}]"
));
return new $componentClass($id);
}
它似乎期待来自 Facade 类的组件参数/vendor/laravel/framework/src/Illuminate/Support/Facades/
,但没有得到它需要的组件。我检查了页面代码,那里肯定有一个组件。
产生错误的 Facade 函数:
/**
* Handle dynamic, static calls to the object.
*
* @param string $method
* @param array $args
* @return mixed
*
* @throws \RuntimeException
*/
public static function __callStatic($method, $args)
{
$instance = static::getFacadeRoot();
if (! $instance) {
throw new RuntimeException('A facade root has not been set.');
}
return $instance->$method(...$args);
}
以及应该加载其组件的页面:
@extends('layouts.app')
@section('content')
@livewire('component')
@stop
有没有解决问题的简单方法?还是我错过了什么?