【问题标题】:Laravel / Livewire - conditional route with same dynamic slugLaravel / Livewire - 具有相同动态 slug 的条件路由
【发布时间】:2022-01-10 17:43:45
【问题描述】:

我在 Laravel / Livewire 中有一个代码库,并希望检查第一个路由是否存在,如果不存在则回退到第二个路由选项。不使用重定向。这是我的代码;

Route::get('/{slug}', \App\Http\Livewire\Web\Food\Show::class)->name('food');
Route::get('/{slug}', \App\Http\Livewire\Web\Pages\Show::class)->name('page');

我知道只为路线添加前缀会容易得多,但是此应用程序允许使用不同的语言(这是在代码中定义的,而不是作为用户的语言选择),因此例如英语或西班牙语,然后前缀词将也必须翻译。另外我认为/page/about-us 这样的路由对于普通页面来说有点傻。

【问题讨论】:

    标签: routes conditional-statements laravel-livewire


    【解决方案1】:

    我最终有一条路线来处理 Livewire 组件内的这两种情况:

    $food = Food::where('slug', $this->slug)->first();
    $page = Page::where('slug', $this->slug)->first();
    
    if ($food) {
      return view('livewire.web.food.show', compact('food'));
    }
    
    if ($page) {
      return view('livewire.web.pages.show', compact('page'));
    }
    
    return abort(404);
    

    【讨论】:

      猜你喜欢
      • 2021-08-05
      • 2021-08-23
      • 2019-06-19
      • 2021-07-11
      • 2020-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多