Laravel 10 ID 问题

Laravel 10 ID issue

提问人:Karansxa 提问时间:11/17/2023 更新时间:11/17/2023 访问量:41

问:

我有这个刀片代码,显示用户列表

<div class="container-fluid">
    <div class="row">
        <div class="col-12">
            <div class="breadcrumb-main">
                <h4 class="text-capitalize breadcrumb-title">User List </h4>
                <div class="breadcrumb-action justify-content-center flex-wrap">
                    <nav aria-label="breadcrumb">
                        <ol class="breadcrumb">
                            <li class="breadcrumb-item"><a href="#"><i class="uil uil-estate"></i>Home</a></li>
                            <li class="breadcrumb-item active" aria-current="page">User List</li>
                        </ol>
                    </nav>
                </div>
            </div>

        </div>
        <div class="col-lg-12 mb-30">
            <div class="card mt-30">
                <div class="card-body">
                    @if ($message = Session::get('success'))
                        <div class=" alert alert-success  alert-dismissible fade show " role="alert">
                            <div class="alert-content">
                                <p>{{ $message }}</p>
                                <button type="button" class="btn-close text-capitalize" data-bs-dismiss="alert"
                                    aria-label="Close">
                                    <img src="{{ asset('backend/img/svg/x.svg') }}" alt="x" class="svg"
                                        aria-hidden="true">
                                </button>
                            </div>
                        </div>
                    @endif
                    <div class="col-12">
                        <div class="breadcrumb-main">
                            <h4 class="text-capitalize breadcrumb-title">User Management</h4>
                            <div class="breadcrumb-action justify-content-center flex-wrap">
                                <nav aria-label="breadcrumb">
                                    <ol class="breadcrumb">
                                        @can('user-add')
                                            <li
                                                class="{{ Request::is('admin/' . app()->getLocale() . '/users') ? 'active' : '' }}">
                                                <a class="btn btn-success text-white btn-lg"
                                                    href="{{ route('users.create', app()->getLocale()) }}">Create User</a>
                                            @endcan
                                    </ol>
                                </nav>
                            </div>
                        </div>
                    </div>
                    @can('user-list')
                        <div style="overflow-x:auto;">
                            <table class="table">
                                <thead>
                                    <tr>
                                        <th>Name</th>
                                        <th>Email</th>
                                        <th>Role</th>
                                        <th>Actions</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    @foreach ($users as $user)
                                        <tr>
                                            <td>
                                                <div class="d-flex">
                                                    <div class="userDatatable-inline-title">
                                                        <h6>{{ $user->name }}</h6>
                                                    </div>
                                                </div>
                                            </td>
                                            <td>
                                                <div class="userDatatable-content">{{ $user->email }}</div>
                                            </td>
                                            <td>
                                                @foreach ($user->roles as $role)
                                                    <span
                                                        class="dm-tag tag-secondary tag-transparented">{{ $role->name }}</span>
                                                @endforeach
                                            </td>
                                            <td>
                                                <ul class="orderDatatable_actions mb-0 d-flex flex-wrap">
                                                    @can('user-edit')
                                                        <li>
                                                            <a
                                                                href="{{ route('users.edit', ['language' => app()->getLocale(), 'id' => $user->id]) }}">
                                                                <i class="uil uil-edit"></i>
                                                            </a>
                                                        </li>
                                                    @endcan
                                                    @can('user-delete')
                                                        <li>
                                                            <a href="{{ route('users.destroy', ['language' => app()->getLocale(), 'id' => $user->id]) }}"
                                                                onclick="event.preventDefault(); document.getElementById('delete-form-{{ $user->id }}').submit();">
                                                                <i class="uil uil-trash"></i>
                                                            </a>

                                                            <form id="delete-form-{{ $user->id }}"
                                                                action="{{ route('users.destroy', ['language' => app()->getLocale(), 'id' => $user->id]) }}"
                                                                method="POST" style="display: none;">
                                                                @csrf
                                                                @method('DELETE')
                                                            </form>

                                                        </li>
                                                    @endcan
                                                </ul>
                                            </td>
                                        </tr>
                                    @endforeach
                                </tbody>
                            </table>
                        </div>
                    @endcan
                </div>
            </div>
        </div>
    </div>
</div>

这是我的控制器代码

public function editUser($id)
    {
        $user = User::find($id);

        dd($id);

        if (!$user) {
            abort(404); // or handle the missing user in a custom way
        }

        $roles = Role::all();
        $language = app()->getLocale();

        return view('backend.users.edit', compact('user', 'roles', 'language'));
    }

这是 Web.php 路由代码

    Route::group(['middleware' => 'auth'], function () {
    Route::group(["prefix" => "admin"], function () {
        Route::group(['prefix' => '{language}'], function () {
            Route::get('users/{id}/edit', [UserController::class, 'editUser'])->name('users.edit')->where('id', '[0-9]+');
            Route::put('users/{id}', [UserController::class, 'updateUser'])->name('users.update')->where('id', '[0-9]+');
            Route::delete('users/{id}', [UserController::class, 'destroyUser'])->name('users.destroy')->where('id', '[0-9]+');
        });
    });
});

现在问题出在控制器上,当我调用 id 时,它传递语言“en”而不是用户 ID。这是dd代码“en” // app\Http\Controllers\backend\Users\UserController.php:57 我想在其中传递用户 ID。

php laravel laravel-blade

评论

0赞 nice_dev 11/17/2023
虽然不太可能。只是好奇为什么当路由只需要输入时,您也要传递语言id{{ route('users.edit', ['language' => app()->getLocale(), 'id' => $user->id]) }}
0赞 Mihai 11/17/2023
刷新路由缓存?php artisan 路由:清除
0赞 Karansxa 11/17/2023
我正在传递语言,因为下一页需要它,而且我已经做了路由缓存和清除
0赞 nice_dev 11/17/2023
对不起,我这边不可重现。
0赞 Adi 11/18/2023
是 laravel 解释为路由 URL 中的第一个参数 这里 ,如果切换 和 喜欢的位置怎么办。访问的路由是什么,您能否分享浏览器对此路由的网络请求?language{{ route('users.edit', ['language' => app()->getLocale(), 'id' => $user->id]) }}idlanguage{{ route('users.edit', ['id' => $user->id, 'language' => app()->getLocale()]) }}

答: 暂无答案