簡體   English   中英

嘗試使用路由 Model 綁定時未找到視圖

[英]View Not Found While Trying To Use Route Model Binding

我想編輯用戶,所以我將其添加為鏈接:

<a href="{{ route('users.edit', $user->name) }}" class="on-default edit-row">Edit</a>

在 Controller 處:

public function edit(User $user)
    {
        $roles = Role::where('slug', '!=', 'super-admin')->get();
        return view('admin.users.edit', compact('roles', 'user'));
    }

所以你可以看到我已經從User Model 調用了$user但現在問題是,它說:

404 | 未找到

但是,如果我將User $user刪除到$id ,它將正常工作!

那么這里出了什么問題呢? 如何在此處正確使用 Route Model 綁定?

我真的很感激你們的任何想法或建議......

提前致謝。

您必須將用戶的 ID 而不是用戶名傳遞給您的路線。

<a href="{{ route('users.edit', $user->id) }}" class="on-default edit-row">Edit</a>

否則,如果您想使用用戶名,您有兩個選擇

  1. 將 getRouteKeyName 添加到 user.php
public function getRouteKeyName()
{
    return 'name';
}
  1. 直接在您的 web.php 中自定義隱式路由 model 綁定
Route::get('/users/{user:name}/edit', function (User $user) {
    // ...
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM