在 laravel-livewire / project 我需要使用存储库。我找到了库https://github.com/andersao/l5-repository 并查看了如何将 Repository 分配给 PostsController 的示例
namespace App\Http\Controllers;
use App\PostRepository;
class PostsController extends BaseController {
protected $repository;
public function __construct(PostRepository $repository){
$this->repository = $repository;
}
....
}
我尝试用组件做类似的事情:
use App\Repositories\Interfaces\FacilityRepositoryInterface;
class Facilities extends Component
{
use WithPagination;
public $form= [
'name'=>'',
'descr'=> '',
'created_at'=> '',
'is_reopen' => false,
];
public $current_facility_id;
public $filter_name= '';
public $updateMode = 'browse';
protected $FacilityRepository;
public function __construct(FacilityRepositoryInterface $FacilityRepository)
{
$this->FacilityRepository = $FacilityRepository;
}
public function render()
{
$backend_per_page = Settings::getValue('backend_per_page', CheckValueType::cvtInteger, 20);
$this->emit('facility_opened', [ 'mode'=>'browse', 'id'=>null ] );
return view('livewire.admin.facilities.container', [
'facilityDataRows' => $this->FacilityRepository->filterWithPagination(
[
'name'=>$this->filter_name,
'per_page'=> $backend_per_page
]
),
'facility_rows_count'=> $this->facility_rows_count
]);
}
其中 filterWithPagination 是
class FacilityRepository extends BaseRepository implements FacilityRepositoryInterface
{
private $UserRepository;
...
I found definition of __construct in in vendor/livewire/livewire/src/Component.php as :
public function __construct($id)
{
$this->id = $id;
$this->ensureIdPropertyIsntOverridden();
$this->initializeTraits();
}
有没有有效的方法?
谢谢!