【问题标题】:Laravel5 won't match route edit_user/{id}Laravel5 不会匹配路由 edit_user/{id}
【发布时间】:2015-06-16 20:59:32
【问题描述】:

拜托,你能帮帮我吗?

我在 Laravel5 中有这条路线:

Route::get('edit_user/{userId}', [
    'as' => 'editUser',
    'uses' => 'Auth\UserController@editUser'
]);

但是当我尝试进入 url .../edit_user/19 它不会匹配并将我重定向到 /home url...

无论如何,当我使用这个时:

Route::get('edit_user/{userId}', [
    'as' => 'editUser',
    function($userId) {
        die($userId);
}
]);

它返回19

这也是我的功能:

public function editUser($userId) {
    die($userId);
}

这也是我的控制器的一部分:

<?php namespace App\Http\Controllers\Auth;


use App\Models\User;

use Auth;
use Hash;
use Mail;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Session;


class UserController extends Controller {

    /**
     *
     * @return void
     */
    public function __construct()
    {

        $this->middleware('guest', ['except' => 'logout']);
    }


    /**
     *
     * show edit user form
     *
     * @param $id
     */

    public function editUser($userId) {
        die($userId);
    }

您知道任何想法,可能是哪里有问题吗?

非常感谢您的意见。

编辑:

我找到了解决方案 -> 需要在 __construct 中编辑身份验证异常。

【问题讨论】:

  • 附带说明:考虑使用 RESTful 路由。所以应该是/users/{userId}/edit。遵循这些约定将使您的开发体验更加轻松。
  • 谢谢。无论如何->如果我更改了此网址,它仍然不起作用:/
  • 哦,我只是建议将其作为旁注。我认为 whoacowboy 怀疑中间件干扰是正确的。

标签: laravel routing laravel-5 laravel-routing


【解决方案1】:

这应该适用于提供的代码。

检查以下项目:

1.您的 UsersController 的 __construct 中有此代码吗?

public function __construct()
{
    $this->middleware('auth');
}

如果是这样,您需要延迟编辑用户。

2。在edit_user/{userId} 之前列出的路线是否会覆盖此路线。

尝试将其移动为第一条路线。

3.您的 UserController 命名空间是否正确?

<?php 
namespace App\Http\Controllers\Auth;

【讨论】:

  • 是的,我愿意。我已登录 -> 从下拉菜单中获得的编辑用户链接仅显示已登录的用户。我将部分控制器发布到我的问题中。可以看到命名空间设置好了。
猜你喜欢
  • 1970-01-01
  • 2018-07-28
  • 2021-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-01
相关资源
最近更新 更多