【问题标题】:Method App\Http\Controllers\UserController::create does not exist方法 App\Http\Controllers\UserController::create 不存在
【发布时间】:2020-05-08 18:49:30
【问题描述】:

我在加载 /usarios/create (/user/create) 并返回以下错误时遇到问题:

BadMethodCallException

方法 App\Http\Controllers\UserController::create 不存在。

路由网络文件:

Auth::routes();
Route::get('/', 'HomeController@index')->name('home');
Route::resource('usuarios', 'UserController@index');

用户控制器:

<?php
namespace App\Http\Controllers;

use App\User;
use Illuminate\Http\Request;

class UserController extends Controller
{

public function index()
{
    $users = User::all( );
    return view( 'usuarios.index', ['users' => $users]);
}
}

function create()
{
    return view ('usuarios.create');
}

function store(Request $request)
{        
}

function show($id)
{        
}

function edit($id)
{    
}

function update(Request $request, $id)
{        
}

function destroy($id)
{        
}

我的 Laravel 版本是 6.0

有什么帮助吗?谢谢!

【问题讨论】:

  • 从您的资源路由中删除 @index。资源路由只需要控制器名称。
  • 抱歉,我忘了删除@index。即便如此,它仍然会出现同样的错误

标签: php laravel


【解决方案1】:

您的控制器上有一个额外的“}”,就在 index 方法的下方。

你需要关闭类,在destroy方法后添加一个}。

【讨论】:

    【解决方案2】:

    Route::resource()中有7个方法绑定。

    如果你想使用Route::resource() 那么你应该传递两个参数,基本路径和控制器类。 see

    所以你应该这样通过。

    Route::resource('usuarios', 'UserController');
    

    注意:

    Route::resource('usuarios', 'UserController');第二个参数是控制器类名。

    你使用的Route::resource('usuarios', 'UserController@index');不是一个类,传递索引方法在UserController类中退出。

    【讨论】:

      猜你喜欢
      • 2020-10-15
      • 2020-09-01
      • 1970-01-01
      • 2016-09-16
      • 2019-09-30
      • 2018-12-14
      • 2018-06-04
      • 2018-11-05
      • 2018-05-25
      相关资源
      最近更新 更多