Laravel livewire:用作 laravel 控制器

Posted

技术标签:

【中文标题】Laravel livewire:用作 laravel 控制器【英文标题】:Laravel livewire: use as a laravel controller 【发布时间】:2021-09-26 01:52:57 【问题描述】:

我在我的应用中使用来进行即时搜索。事实上,我展示了该机构及其文件,这些文件显示在我的 controller show 中,如下所示:

public function show($id)

    $etablissements = Etablissement::find($id);
    $faculty = $etablissements->filieres;
    return view('etablissements/edhec/touteslesfilieresedhec', compact('faculty','etablissements'));

现在我尝试在我的 livewire 组件中做同样的事情,以便能够进行如下搜索:

class SchoolfaclutysList extends Component

  public $faculty;
  public function mount($id)

    $etablissements = Etablissement::find($id);
    $this->faculty = $etablissements->filieres;


public function render()

    return view('livewire.schoolfaclutys-list');


但他把空白页还给我 查看刀片

<div class="container my-5">
    <div class="row">
        <div class="col text-center">
            <a href=" route('filiere.show', ['filiere' => $etablissements->id]) " class="btn btn-outline-success rounded-pill mr-3 font-weight-bold text_info">Informations générales</a>
            <a href=" route('filieresedhec') " class="btn btn-outline-success rounded-pill ml-5 font-weight-bold text_filière">Filières/Facultés</a>
        </div>
    </div>
  </div>
  @livewire('schoolfaclutys-list')
  </div>
  <!-- Debut footer -->
    @include('layouts/partials/_footer')
  <!-- Fin footer -->

web-php

route::resource('school','schoolController');

是否可以让它作为 laravel 控制器工作?谢谢

【问题讨论】:

【参考方案1】:

使用“模型路由绑定”将模型实例直接传递到构造中,在 Livewire 中是 mount() 方法。

Route::get('school/etablissement', \App\Http\Livewire\SchoolfaclutysList::class)->name('school.show');

然后,您将 Blade 视图中所需的两个变量声明为类的 public 属性。只有类上的公共属性将被传递到刀片(或通过data 参数传递到render() 方法中的view() 方法的那些)。

class SchoolfaclutysList extends Component

    public $faculty;
    public $etablissement;

    public function mount(Etablissement $etablissement)
    
        $this->etablissement = $etablissement;
        $this->faculty = $this->etablissement->filieres;
    

    public function render()
    
        return view('livewire.schoolfaclutys-list');
    

【讨论】:

它让我回到了这个错误App\Http\Controllers\App\Http\Livewire\SchoolfaclutysList was not found。 au niveau de ma 路线我使用 laravel 7 在定义该路由的组周围是否有命名空间?

以上是关于Laravel livewire:用作 laravel 控制器的主要内容,如果未能解决你的问题,请参考以下文章

Laravel Livewire,两个 livewire 组件之间的通信

Laravel-livewire:为啥触发事件会执行 render() 方法?

Laravel 8 和 Livewire - 查询不起作用

laravel - livewire 整页组件

Laravel Livewire 分页

Laravel 与 JetStream 和 LiveWire 不渲染(尾风)