Laravel collection 显示和短路问题
Laravel collection display and short issue
大家好!
我对 collection 有点小问题。我从来没有和这些一起工作过。我想在欢迎 blade 时显示一个 collection,但有一个问题。我的 collection 不在控制器中,collection 的位置在 App/Repositories/xyz.php 和函数中。我如何将此功能传递给控制器并在欢迎时显示它blade??
App/repositories/xyz.php
public function getcars(): Collection
{
return collect([
new Car(...)
)];
控制器
public function __invoke(): View
{
return view('welcome', ['cars' => collect([
new Car() ------> I would like to put datas from xyz.php repo here
new Car()
new Car()
....
和 welcome.blade 我想显示的文件
<div class="car-list">
<h2>{{ $title }}</h2>
@foreach($cars as $car)
<x-car :car="$car" />
@endforeach
</div>
我相信从您的 Controller 文件中,您可以通过 __construct()
方法创建存储库的对象 属性,如下所示:
protected MyRepository $myRepository;
public function __construct(MyRepository $myRepository)
{
$this->myRepository = $myRepository;
}
然后,您可以从那里调用$this->myRepository
的方法,例如获取记录等。然后您可以将结果传递给您的视图。
您可以通过多种方式做到这一点:
正在创建新实例
use App\repositories\Xyz;
public function __invoke(): View
{
$repo = new Xyz();
return view('welcome')->with('cars', $repo->getcars());
}
从容器中拉出您的class
use App\repositories\Xyz;
public function __invoke(): View
{
$repo = app(Xyz::class);
return view('welcome')->with('cars', $repo->getcars());
}
使用依赖注入从容器中解析
use App\repositories\Xyz;
protected Xyz $repo;
public function construct(Xyz $xyz): View
{
$this->repo = $xyz;
}
public function __invoke(): View
{
return view('welcome')->with('cars', $this->repo->getcars());
}
大家好!
我对 collection 有点小问题。我从来没有和这些一起工作过。我想在欢迎 blade 时显示一个 collection,但有一个问题。我的 collection 不在控制器中,collection 的位置在 App/Repositories/xyz.php 和函数中。我如何将此功能传递给控制器并在欢迎时显示它blade??
App/repositories/xyz.php
public function getcars(): Collection
{
return collect([
new Car(...)
)];
控制器
public function __invoke(): View
{
return view('welcome', ['cars' => collect([
new Car() ------> I would like to put datas from xyz.php repo here
new Car()
new Car()
....
和 welcome.blade 我想显示的文件
<div class="car-list">
<h2>{{ $title }}</h2>
@foreach($cars as $car)
<x-car :car="$car" />
@endforeach
</div>
我相信从您的 Controller 文件中,您可以通过 __construct()
方法创建存储库的对象 属性,如下所示:
protected MyRepository $myRepository;
public function __construct(MyRepository $myRepository)
{
$this->myRepository = $myRepository;
}
然后,您可以从那里调用$this->myRepository
的方法,例如获取记录等。然后您可以将结果传递给您的视图。
您可以通过多种方式做到这一点:
正在创建新实例
use App\repositories\Xyz;
public function __invoke(): View
{
$repo = new Xyz();
return view('welcome')->with('cars', $repo->getcars());
}
从容器中拉出您的class
use App\repositories\Xyz;
public function __invoke(): View
{
$repo = app(Xyz::class);
return view('welcome')->with('cars', $repo->getcars());
}
使用依赖注入从容器中解析
use App\repositories\Xyz;
protected Xyz $repo;
public function construct(Xyz $xyz): View
{
$this->repo = $xyz;
}
public function __invoke(): View
{
return view('welcome')->with('cars', $this->repo->getcars());
}