【问题标题】:Why routes are not working in laravel-livewire?为什么路由在 laravel-livewire 中不起作用?
【发布时间】:2021-08-14 16:48:29
【问题描述】:

我正在使用 laravel-livewire。在我的项目路线中不起作用。

这里是路线列表..

<?php

use App\Http\Livewire\HomeComponent;
use App\Http\Livewire\ShopComponent;
use App\Http\Livewire\CartComponent;
use App\Http\Livewire\CheckoutComponent;
use Illuminate\Support\Facades\Route;

Route::get('/',HomeComponent::class);

Route::get('/shop',ShopComponent::class);

Route::get('/cart',CartComponent::class);

Route::get('/checkout',CheckoutComponent::class);

从上面的路线中,只有第一条路线可以正常工作。但其他路线都不能正常工作。 他们显示 404(未找到)。

这里我给2nd route 组件和资源材料。

商店组件

 <?php

 namespace App\Http\Livewire;
 use Livewire\Component;

class ShopComponent extends Component
{
 public function render()
 {
    return view('livewire.shop-component')->layout('layouts.base');
 }
}

Shop-component.blade.php

<div>
Shop Page
</div>

为什么代码不起作用? 这里是问题的截图..

【问题讨论】:

  • 如果您这样做php artisan route:list,路线是否正确显示?
  • @Peppermintology,路线显示不正确。
  • 这就是你的问题。你在哪里定义你的路线?
  • 路由目录:Demoecommerce>routes>web.php
  • 尝试清除您的路由缓存。如果您在 route:list 中看不到它们,则说明它们无法注册。

标签: laravel routes laravel-blade laravel-livewire


【解决方案1】:

Livewire 1.x 允许您使用 Route::livewire() 方法为整个页面注册一个带有路由的组件。 Livewire 2.0 现在允许您使用标准 Route::get() 方法和完全限定的命名空间将 Livewire 组件直接传递到路由中。

https://laravel-livewire.com/docs/2.x/upgrading#:~:text=11%7D-,Removed%3A%20Route%3A%3Alivewire(),-Livewire%201.x

// 之前 Route::livewire('/post', 'show-posts');

// 之后 Route::get('/post', \App\Http\Livewire\ShowPosts::class);

【讨论】:

    【解决方案2】:

    看起来您遇到了一些路由问题。这可能是由路由缓存引起的。 Laravel 路由缓存用于大幅减少注册所有应用程序路由所需的时间 (Laravel Routing)。您需要记住的是,当您缓存对路由文件所做的路由更改时,不会自动更新,因此您需要通过运行来删除缓存

    php artisan route:clear
    

    或通过运行重置缓存

    php artisan route:cache 
    

    最后,要查看您的路线列表,请运行以下命令

    php artisan route:list
    

    希望这能解决您的问题。

    【讨论】:

      猜你喜欢
      • 2021-01-20
      • 2021-03-11
      • 2021-10-22
      • 1970-01-01
      • 2021-11-02
      • 1970-01-01
      • 2014-08-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多